اتصال به آبجکت استوریج از طریق 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
توصیه میشود دسترسی عمومی فقط در مواردی فعال شود که نیاز به اشتراکگذاری فایل برای همه وجود دارد (مثلاً میزبانی تصویر یا فایل استاتیک).