استفاده از S3cmd برای اتصال به پارتیشن S3-compatible پشتیبان

راهنمای s3cmd برای اتصال به فضای ابری پشتیبان

ابزارهای مشابه زیادی برای سیستم عامل های مختلف وجود دارند که می‌توانید از آنها برای اتصال و تعامل با آبجکت استوریج پشتیبان (پارتیشن S3- compatible) از آنها استفاده کنید. به همه‌ی این ابزارها در راهنمای پارتیشن S3 پشتیبان دسترسی دارید. در این راهنما نحوه‌ی اتصال با استفاده از ابزار S3cmd و اتصال به فضای ذخیره سازی ابری پشتیبان را برای شما توضیح خواهیم داد. از این ابزار به راحتی در توزیع های مختلف لینوکس می‌توانید به فضای ابری خود پشتیبان متصل شوید.

برای دریافت مستندات کامل ابزار s3cmd به وب سایت یا برای دریافت جدید ترین نسخه‌ی این ابزار به گیتهاب این ابزار مراجعه کنید.

نصب در لینوکس (CentOS و Ubuntu)

#ubuntu
sudo apt-get install s3cmd

#CentOS
yum install s3cmd

برای دریافت آخرین نسخه از گیتهاب دستور زیر را وارد کنید آخرین نسخه در زمان نگارش این راهنما 2.1.0 است.

wget https://github.com/s3tools/s3cmd/releases/download/v2.1.0/s3cmd-2.1.0.tar.gz
tar zxvf s3cmd-2.1.0.tar.gz
cd s3cmd-2.1.0/

فایل .s3cfg را برای وارد کردن مشخصات اتصال پارتیشن S3 پشتیبان خود ویرایش کنید.

nano ~/.s3cfg

# Setup endpoint
host_base = [YOUR ENDPOINT]
host_bucket = [YOUR ENDPOINT]
bucket_location = us-east-1
use_https = True

# Setup access keys
access_key =  [YOUR ACCESSKEY]
secret_key = [YOURB SECRETKEY]

# Enable S3 v4 signature APIs
signature_v2 = False

# Enable Multipart Upload
enable_multipart = True
multipart_chunk_size_mb = 50

برای مشاهده همه ی دستورات و راهنمای s3cmd دستور زیر را وارد کنید:

./s3cmd

برای ایجاد باکت (Bucket) دستور زیر را وارد کنید:

s3cmd mb s3://mybucket
Bucket 's3://mybucket/' created

برای کپی (آپلود) یک آبجکت از روی سیستم به باکت دستور زیر را استفاده کنید:

s3cmd put newfile s3://testbucket
upload: 'newfile' -> 's3://testbucket/newfile'  

برای کپی(دانلود) یک آبجکت از روی باکت به سیستم تان دستور زیر را استفاده کنید:

s3cmd get s3://testbucket/newfile
download: 's3://testbucket/newfile' -> './newfile'

برای سینک کردن یک فایل/ دایرکتوری روی سیستم‌تان با باکت دستور زیر را وارد کنید:

s3cmd sync newdemo s3://testbucket
upload: 'newdemo/newdemofile.txt' -> 's3://testbucket/newdemo/newdemofile.txt'

برای سینک کردن آبجکت روی باکت با باکت دیگر از دستور زیر استفاده کنید:

s3cmd sync  s3://testbucket otherlocalbucket
download: 's3://testbucket/cat.jpg' -> 'otherlocalbucket/cat.jpg'

برای مشاهده لیست باکت‌ها در پارتیشن S3 پشتیبان تان دستور زیر را وارد کنید:

در مثال زیر یک باکت با نام testbbucket لیست شده است.

s3cmd ls s3://
2015-12-09 16:12  s3://testbbucket

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

s3cmd ls s3://testbucket/
                                      DIR   s3://testbucket/test/
2015-12-09 16:05    138504   s3://testbucket/newfile

برای حذف محتوای یک باکت دستور زیر را بکارببرید:

s3cmd del s3://testbucket/newfile
delete: 's3://testbucket/newfile'

برای حذف باکت از دستور زیر استفاده کنید:

s3cmd rb s3://mybucket
Bucket 's3://mybucket/' removed

نکته: برای این که در هنگام بارگذاری و یا در حالت سینک ممکن است با قطع شدن و کمبود کیفیت سرویس اینترنت فایل تنظیمات در مسیر زیر را ویرایش کنید:

/usr/lib/python3/dist-packages/S3/S3.py

مقدار _max_retries را یک عدد بزرگ قرار دهید تا تعداد تلاش ها برای بارگزاری هنگام قطع شدن ارتباط بیشتر باشد همچنین در تابع def _fail_wait عدد بزرگتری از 3 (ثانیه) قرار دهید تا مدت زمان بیشتری تا تلاش بعدی و تلاش مجدد برای اپلود فاصله باشد.

def _fail_wait(self, retries):
 # Wait a few seconds. The more it fails the more we wait 
 return (self._max_retries - retries + 1) * 3

برای دسترسی به مستندات S3cmd برای Minio به اینجا بروید.

برای دسترسی به مستندات کامل S3cmd در وبسایت رسمی اینجا بروید.