آموزش اتصال به فضای ابری پارس پک ازطریق s3cmd
در این مقاله میخوانید
یکی از راههای اتصال به فضای ابری پارس پک که از پروتکل S3 استفاده میکند، ابزاری به نام S3cmd است. در این مقاله، میخواهیم نحوه دانلود S3cmd و نصب و استفاده از این ابزار را به شما آموزش دهیم. همچنین با کلیک روی لینکهای زیر، به آموزش روشهای دیگر اتصال به فضای ذخیرهسازی ابری میتوانید دسترسی داشته باشید.
S3cmd چیست؟
نرمافزار S3cmd یکی از ابزارهای خط فرمان رایگان و متنباز سمت کاربر برای بارگذاری و بازیابی و مدیریت دادهها در فضاهای ابری است. این ابزار از پروتکل S3 استفاده میکند و به کاربرانی توصیه میشود که با برنامههای خط فرمان آشنایی دارند.
S3cmd با استفاده از زبان برنامهنویسی پایتون نوشته شده و پروژهای متنباز تحت GNU Public License v2 است که میتوان بهرایگان از آن هم برای کاربردهای خصوصی و هم برای کاربردهای تجاری روی سیستمعاملهای مختلف مثل ویندوز و مک و لینوکس استفاده کرد. از زمان معرفی این ابزار مدیریت فضای ابری در سال ۲۰۰۸، قابلیتها و امکانات متعددی به آن اضافه شدهاند.
آموزشهای مرتبط با فضای ذخیرهسازی ابری پارس پک را در مقالات زیر بخوانید.
آموزش اتصال به فضای ابری با Minio Client
آشنایی با پروتکل S3
پروتکل S3 مخفف عبارت Simple Storage Service و بهمعنی «سرویس ذخیرهسازی ساده» است و پرکاربردترین سرویس ذخیرهسازی ابری عمومی شناخته میشود. به ابرهایی که از این پروتکل استفاده میکنند، S3 Compatible Storage یا «حافظه سازگار با S3» گفته میشود.
فایلهایی که در S3 ذخیره میشوند، آبجکت (Object) یا شیء نام دارند و نامهای این آبجکتها کلید (key) نامیده میشوند. ازآنجاکه این اصطلاحات میتوانند کمی گیجکننده باشند، گاهی اوقات از اصطلاح «فایل» یا «فایل ریموت» (Remote File) بهجای آبجکت استفاده میشود.
هر آبجکت به یک «باکت» (Bucket) تعلق دارد. باکتها نوعی دایرکتوری یا پوشه هستند که محدودیتهایشان ازاینقرارند:
- هر کاربر حداکثر میتواند ۱۰۰ باکت داشته باشد.
- هر کاربر S3 باید از نامهای منحصربهفردی روی باکتهای خودش قرار دهد.
- نام باکت فقط میتواند شامل حروف الفبا، اعداد، نقطه (.) و دش (-) باشد.
ازآنجاکه فضای ذخیرهسازی ابری پارس پک از پروتکل S3 آمازون استفاده میکند، بهمنظور اتصال به آن از S3cmd میتوانید استفاده کنید. برای کار با رابط کاربری S3cmd، باید اطلاعات باکت فضای ابری خود را به آن بدهید.
نرمافزار S3cmd ابزاری کارآمد برای مدیریت دادهها در فضای ابری است. اتصال به فضای ابری پارس پک ازطریق S3cmd به شما کمک میکند بتوانید فایلها و پوشههای موجود در فضای ابری خود را بهراحتی دانلود/آپلود و حذف و ویرایش کنید.
آموزش نصب S3cmd
حالا که با ابزار S3cmd آشنا شدید، نحوه نصب و استفاده از آن را توضیح میدهیم (برای دانلود S3cmd کلیک کنید). ابزار S3cmd به دو فرمت زیر منتشر میشود:
۱. فایل RPM پیشساخته
۲. پکیج منبع .tar.gz
۱. نصب پکیج Brew
برای نصب S3cmd روی سیستمعاملهای مک یا لینوکس، فرمان زیر را وارد کنید:
brew install s3cmd
۲. نصب پکیج RPM
برای نصب پکیج RPM ابزار S3cmd، باید کاربر روت باشید و فرمان زیر را وارد کنید:
rpm -ivh s3cmd-X.Y.Z.noarch.rpm
در فرمان بالا، بهجای X.Y.Z جدیدترین نسخه منتشرشده S3cmd را قرار دهید. برای مثال، اگر تازهترین نسخه این ابزار نسخه 2.2.0 باشید، باید فرمان زیر را وارد کنید:
rpm -ivh s3cmd-2.2.0.noarch.rpm
نکته: ممکن است با خطای Missing Dependencies برای پایتون یا بعضی از کتابخانهها مواجه شوید. در این صورت، با پشتیبانی پارس پک تماس بگیرید.
۳. نصب S3cmd از PyPA
امکان نصب S3cmd از PyPA با استفاده از PIP نیز فراهم است. برای این کار، طبق مراحل زیر پیش بروید:
۱. ابزار PIP را نصب کنید.
۲. S3cmd را با PIP نصب کنید. برای این کار، باید فرمان زیر را وارد کنید:
sudo pip install s3cmd
۴. نصب S3cmd از فایل زیپ
سه راه برای اجرای S3cmd از tarball منبع وجود دارد:
۱. برنامه s3cmd دانلودشده بهصورت فایل زیپ از s3cmd-X.Y.Z.tar.gz و SourceForge یا master.zip از GitHub را مستقیماً از جایی که پکیج را از حالت فشرده خارج کردهاید، میتوانید اجرا کنید.
۲. فایل S3cmd و سابدایرکتوری S3 را به مسیر دیگری در سیستم خود میتوانید منتقل کنید. مطمئن شوید که سابدایرکتوری S3 را در همان مسیری قرار میدهید که فایل s3cmd را قرار دادهاید.
۳. بهترین روشی که آن را توصیه میکنیم، این است که پکیج را از حالت فشرده خارج و سپس فرمان زیر را وارد کنید:
python setup.py install
برای این کار، نیازمند ماژول Distutils پایتون هستید. معمولاً این ماژول در پکیج هسته پایتون (پکیج OpenSuse Python 2.5) قرار دارد یا آن را با استفاده از پکیج منیجر، یعنی در Debian و با استفاده از دستور زیر میتوانید نصب کنید:
apt-get install python-setuptools
برای پیداکردن نام واقعی پکیج و نحوه نصب آن، با پشتیبانی پارس پک در تماس باشید. درصورتیکه در سیستمعامل لینوکس کاربر روت نیستید، فرمان زیر را وارد کنید:
sudo python setup.py install
آموزش کانفیگکردن S3cmd
پس از نصب ابزار S3cmd، میتوانید برای کانفیگکردن این ابزار بهصورت زیر عمل کنید:
۱. رابط کاربری S3cmd را با فرمان زیر اجرا کنید:
s3cmd --configure
۲. پس از اجرای S3cmd، دو کلید از شما خواسته میشود. کلیدهایی که پس از خرید فضای ابری پارس پک دراختیارتان قرار میگیرد، وارد کنید. هنگام کپیکردن این کلیدها، دقت لازم را بهخرج دهید؛ زیرا این کلیدها به حروف بزرگ و کوچک حساس هستند.
۳. برای ارتباط با فضای ابری، شما میتوانید بین دو گزینه HTTP و HTTPS یکی را انتخاب کنید. همانطورکه میدانید، HTTPS نسخهای رمزنگاریشده از پروتکل HTTP است و با انتخاب آن، میتوانید از اطلاعات خود محافظت کنید.
نکته: دقت کنید که پروتکلهای رمزنگاری GPG و HTTPS با همدیگر تفاوت دارند و برای مقاصد مختلفی استفاده میشوند. درحالیکه GPG از اطلاعات ذخیرهشده شما در فضای ابری درمقابل خواندهشدن محافظت میکند، پروتکل HTTPS از خواندهشدن این اطلاعات هنگام آپلودشدن (مثلاً بهوسیله ارائهکننده سرویس اینترنتی شما) جلوگیری میکند. هرکدام از این پروتکلها مزیتها و معایب خاص خودشان را دارند و بسته به نیازتان، هر دو یا یکی از آنها یا هیچکدام را میتوانید انتخاب کنید.
اگر نمیدانید فضای ابری چیست و چه مزیتها و کاربردهایی دارد، مقاله زیر را بخوانید.
آموزش استفاده از S3cmd
۱. پس از اجرای نرمافزار و واردکردن کلیدها، باکت خود را میتوانید مشاهده کنید. برای فهرستکردن محتویات موجود در باکت، فرمان زیر را وارد کنید:
$ s3cmd ls …
بهجای سهنقطه، نام باکت خود را قرار دهید. برای مثال، اگر نام باکت شما my-bucket-name باشد، برای دیدن فهرست محتویات موجود در باکت، باید فرمان زیر را وارد کنید:
$ s3cmd ls my-bucket-name
۲. برای آپلودکردن یک فایل (مثلاً فایل somefile.xlm) در باکت خود، باید دستور زیر را وارد کنید:
$ s3cmd put some-file.xml my-bucket-name/somefile.xml some-file.xml -> my-bucket-name/somefile.xml [1 of 1] 123456 of 123456 100% in 2s 51.75 kB/s done
برای آپلودکردن یک Two-Directory Tree به درون درایو مجازی باکت، دستور زیر را وارد کنید:
$ s3cmd put --recursive dir1 dir2 my-bucket-name/دایرکتوری مورد نظر/ File 'dir1/file1-1.txt' stored as 'my-bucket-name/somewhere/dir1/file1-1.txt' [1 of 5] File 'dir1/file1-2.txt' stored as 'my-bucket-name/somewhere/dir1/file1-2.txt' [2 of 5] File 'dir1/file1-3.log' stored as 'my-bucket-name/somewhere/dir1/file1-3.log' [3 of 5] File 'dir2/file2-1.bin' stored as 'my-bucket-name/somewhere/dir2/file2-1.bin' [4 of 5] File 'dir2/file2-2.txt' stored as 'my-bucket-name/somewhere/dir2/file2-2.txt' [5 of 5]
همانطورکه میبینید، به ایجاد «دایرکتوری مدنظر» نیازی نیست. درواقع، این دایرکتوری فقط یک پسوند فایل است و دایرکتوری واقعی محسوب نمیشود و نیازی نیست که آن را ازقبل ایجاد کرده باشید.
بهجای فرمان put –recursive، از فرمان sync میتوانید بهصورت زیر استفاده کنید:
$ s3cmd sync dir1 dir2 my-bucket-name/دایرکتوری مورد نظر/
۳. محتویات باکت را مجدداً فهرست کنید:
$ s3cmd ls my-bucket-name DIR my-bucket-name/somewhere/ 2009-02-10 05:10 123456 my-bucket-name/somefile.xml
برای نمایش فهرست تمامی فایلها، از فرمان –recursive یا (-r) استفاده کنید:
$ s3cmd ls --recursive my-bucket-name 2009-02-10 05:10 123456 my-bucket-name/somefile.xml 2009-02-10 05:13 18 my-bucket-name/somewhere/dir1/file1-1.txt 2009-02-10 05:13 8 my-bucket-name/somewhere/dir1/file1-2.txt 2009-02-10 05:13 16 my-bucket-name/somewhere/dir1/file1-3.log 2009-02-10 05:13 11 my-bucket-name/somewhere/dir2/file2-1.bin 2009-02-10 05:13 8 my-bucket-name/somewhere/dir2/file2-2.txt
۴. برای بازیابی یکی از فایلها (در اینجا somefile.xml) و بررسی آسیبدیده بودن یا نبودن آن، از فرمانهای زیر استفاده کنید:
$ s3cmd get s3://public.s3tools.org/somefile.xml some-file-2.xml s3://public.s3tools.org/somefile.xml -> some-file-2.xml [1 of 1] 123456 of 123456 100% in 3s 35.75 kB/s done
$ md5sum some-file.xml some-file-2.xml 39bcb6992e461b269b95b3bda303addf some-file.xml 39bcb6992e461b269b95b3bda303addf some-file-2.xml
برای بازیابی یک Directory Tree کامل، از فرمان زیر استفاده کنید:
$ s3cmd get --recursive my-bucket-name/somewhere File my-bucket-name/somewhere/dir1/file1-1.txt saved as './somewhere/dir1/file1-1.txt' File my-bucket-name/somewhere/dir1/file1-2.txt saved as './somewhere/dir1/file1-2.txt' File my-bucket-name/somewhere/dir1/file1-3.log saved as './somewhere/dir1/file1-3.log' File my-bucket-name/somewhere/dir2/file2-1.bin saved as './somewhere/dir2/file2-1.bin' File my-bucket-name/somewhere/dir2/file2-2.txt saved as './somewhere/dir2/file2-2.txt'
۵. برای پاککردن فایلها، از فرمان زیر استفاده کنید:
$ s3cmd del --recursive my-bucket-name/دایرکتوری مورد نظر/ File my-bucket-name/somewhere/dir1/file1-1.txt deleted File my-bucket-name/somewhere/dir1/file1-2.txt deleted ...
برای پاککردن باکت، از فرمان زیر استفاده کنید:
$ s3cmd rb my-bucket-name ERROR: S3 error: 409 (BucketNotEmpty): The bucket you tried to delete is not empty
همانطورکه میبینید، باکت خالی نیست و با پیام بالا مواجه میشوید. در این صورت، با فرمان زیر باکت را پاک کنید:
$ s3cmd rb --force s3://public.s3tools.org/ WARNING: Bucket is not empty. Removing all the objects from it first. This may take some time... File s3://public.s3tools.org/somefile.xml deleted Bucket 's3://public.s3tools.org/' remove
جمعبندی
برای اینکه بتوانید پس از خرید فضای ابری پارس پک خود دسترسی پیدا کنید، میتوانید از S3cmd استفاده کنید. در این مقاله از بلاگ پارس پک، نحوه دانلود و نصب این ابزار را توضیح دادیم و گفتیم که چطور میتوانید S3cmd را کانفیگ و از آن استفاده کنید. امیدواریم که این مطلب آموزشی برای شما مفید بوده باشد.
سؤالات متداول
۱. S3cmd چیست؟
S3cmd نرمافزار خط فرمانی است که برای اتصال به فضای ابری خریدهشده از پارس پک، باید آن را روی سیستمتان نصب کنید.
۲. آیا نسخه ویندوز برای S3cmd وجود دارد؟
بله، این نرمافزار نسخههایی برای سیستمعاملهای متنوع مثل نسخههای مختلف لینوکس و ویندوز و مک دارد.
۳. برای دسترسی به باکت خود با استفاده از نرمافزار S3cmd به چه اطلاعاتی نیاز داریم؟
برای استفاده از نرمافزار S3cmd، باید نام باکت خود را بدانید و کلیدهایی برای راهاندازی و کانفیگکردن نرمافزار روی سیستم خود داشته باشید. نام باکت و کلیدهای استفاده از ابزار ابری S3cmd پس از خرید فضای ابری از پارس پک دراختیارتان قرار میگیرند.