پرش به مطلب اصلی

اتصال به آبجکت استوریج از طریق s3cmd

s3cmd یک ابزار خط فرمان (CLI) برای مدیریت سرویس‌های آبجکت استوریج سازگار با پروتکل S3 است. این ابزار امکان انجام عملیات‌هایی مثل آپلود، دانلود، همگام‌سازی فایل‌ها، ایجاد و حذف باکت، و مدیریت دسترسی‌ها را فراهم می‌کند. با s3cmd می‌توانید به‌طور مستقیم به آبجکت استوریج آبالون متصل شوید و وظایف مدیریتی یا اتوماسیون انتقال داده‌ها را به‌سادگی اجرا کنید.

نصب s3cmd (برای اوبونتو و سایر سیستم‌عامل‌های مبتنی بر دبیان)

برای نصب و استفاده از s3cmd باید از یکی از توزیع‌های لینوکس استفاده کنید، اگر در محیط ویندوز هستید می‌توانید از Windows Subsystem for Linux یا همان WSL استفاده کنید (راهنمای نصب لینوکس در ویندوز). در این آموزش از توزیع اوبونتو بر پایه WSL استفاده شده است.

برای نصب s3cmd ابتدا پکیج‌ها را آپدیت و به‌روزرسانی کنید:

sudo apt update && apt upgrade -y

در مرحله بعد با استفاده از دستور زیر s3cmd را نصب کنید:

sudo apt install s3cmd

پیکربندی s3cmd

برای اتصال به سرویس آبجکت استوریج آبالون ابتدا یک فایل جدید با نام s3cfg. در دایرکتوری اصلی کاربر (HOME) ایجاد کنید:

cd $HOME
touch .s3cfg

با استفاده از ویرایشگری مانند nano فایل را باز کنید:

nano .s3cfg

متن زیر را کپی کرده و در داخل فایل قرار دهید:

[default]
# Login credentials
access_key = ACCESS_KEY
secret_key = SECRET_KEY
host_base = Endpoint URL
host_bucket = Endpoint URL
use_https = True

مقادیر ACCESS_KEY و SECRET_KEY و نیز Endpoint URL را براساس مشخصات دریافتی از آبالون وارد کنید. فایل را ذخیره کرده و از ویرایشگر خارج شوید. برای این‌کار از ctrl+x استفاده کنید و سپس با فشردن کلید y فرایند ذخیره‌سازی را تایید کنید.

نحوه استفاده از s3cmd

در ادامه با برخی از کاربردی‌ترین دستورات s3cmd برای مدیریت آبجکت استوریج آشنا می‌شویم. همچنین برای مطالعه کامل‌تر می‌توانید به مستندات رسمی مراجعه کنید.

ایجا‎د یک باکت

s3cmd mb s3://mybucket

در اینجا اسم باکت جدیدی که ساختیم mybucket است، شما می‌توانید از اسم دیگری استفاده کنید.

حذف یک باکت

s3cmd rb s3://mybucket

لیست گرفتن از باکت‌ها

s3cmd ls

لیست گرفتن از آبجکت‌های داخل یک باکت

s3cmd ls s3://mybucket

حذف همه آبجکت‌ها در یک باکت

s3cmd del --recursive --force s3://mybucket

آپلود و دانلود فایل‌ها

آپلود و دانلود فایل‌ها با دسترسی خصوصی یا عمومی متفاوت است.

آپلود فایل با دسترسی خصوصی

s3cmd put photo.jpg s3://mybucket/photo.jpg

آپلود فایل با دسترسی عمومی

s3cmd put -P photo.jpg s3://mybucket/photo.jpg

دانلود یک فایل

s3cmd get s3://mybucket/photo.jpg

حذف یک فایل

s3cmd rm s3://mybucket/photo.jpg

مدیریت سطوح دسترسی (Permissions)

در آبالون، مانند سایر سرویس‌های سازگار با S3، هر فایل (Object) یا باکت (Bucket) به‌صورت پیش‌فرض خصوصی ایجاد می‌شود و فقط کاربری که Access Key و Secret Key معتبر دارد به آن دسترسی دارد. برای تغییر سطح دسترسی‌ها می‌توان از دستور setacl در s3cmd استفاده کرد. در ادامه با برخی از حالت‌های مدیریت دسترسی در s3cmd آشنا می‌شویم.

تغییر سطح دسترسی فایل به عمومی

در این حالت هرکسی با داشتن لینک فایل یا آدرس باکت می‌تواند محتوای آن را ببیند، اما فقط مالک اجازه ویرایش یا حذف دارد:

s3cmd setacl s3://mybucket/photo.jpg --acl-public

تغییر سطح دسترسی فایل به خصوصی

در این حالت فقط مالک (کاربر احراز هویت شده با کلیدها) می‌تواند فایل یا باکت را بخواند یا بنویسد:

s3cmd setacl s3://mybucket/photo.jpg --acl-private

فعال کردن لیست‌ عمومی دایرکتوری برای یک باکت

این حالت باعث می‌شود همه کاربران بتوانند لیست فایل‌های داخل باکت را مشاهده کنند:

s3cmd setacl s3://mybucket/ --acl-public

غیرفعال کردن لیست‌ عمومی دایرکتوری برای یک باکت

در این حالت فقط مالک امکان مشاهده لیست فایل‌ها را دارد:

s3cmd setacl s3://mybucket/ --acl-private

توصیه می‌شود دسترسی عمومی فقط در مواردی فعال شود که نیاز به اشتراک‌گذاری فایل برای همه وجود دارد (مثلاً میزبانی تصویر یا فایل استاتیک).