در این راهنما شیوه‌ی استفاده از s3fs به عنوان کلاینت برای فضای ابری آروان را خواهیم آموخت. s3fs یک رابط فایل با پشتیبانی FUSE برای S3 است که به شما امکان می‌دهد صندوقچه‌های S3 خود را روی سیستم‌عامل لینوکس یا macOS نصب کنید.

نسخه‌ی S3fs موجود برای نصب با استفاده از Package Managerهای سیستمی‌ از فایل‌های بزرگ‌تر از 10 گیگابایت پشتیبانی نمی‌کند. بنابراین توصیه می‌شود یک نسخه را از مخزن کد منبع s3fs کامپایل کنید. این آموزش شما را در این فرآیند راهنمایی می‌کند. لطفن توجه داشته باشید که حتا با نسخه‌ی کامپایل‌شده‌ی کد s3fs، محدودیت حداکثر اندازه فایل 128 گیگابایت در هنگام استفاده از s3fs وجود دارد.

نصب S3fs

نصب Dependencyها

بسته به سیستم‌عامل خود، نصب Dependencyهای s3fs-fuse را با اجرای دستورات زیر شروع کنید:

در دبیان و اوبونتو، از طریق کامندلاین:

apt update && apt upgrade -y

apt -y install automake autotools-dev fuse g++ git libcurl4-gnutls-dev libfuse-dev libssl-dev libxml2-dev make pkg-config

در مک‌او-‌اس از طریق Homebrew:

brew install --cask osxfuse
brew install autoconf automake pkg-config gnutls libgcrypt nettle git

توجه داشته باشیددر macOS باید به FUSE مجوزها یا Permissionهای لازم را اضافه کنید. برای این کار از مسیر Settings > Security & Privacy > General آن‌ها را مجاز کنید.

S3fs-fuse

برای نصب s3fs-fuse ریپازیتوری Git آن را دانلود کنید:

git clone

https://github.com/s3fs-fuse/s3fs-fuse.git

وارد دایرکتوری s3fs-fuse شوید:

cd s3fs-fuse

مقدار MAX_MULTIPART_CNT را در فایل fdcache_entity.cpp به‌روزرسانی کنید:

در لینوکس:

sed -i 's/MAX_MULTIPART_CNT         = 10 /MAX_MULTIPART_CNT         = 1 /' src/fdcache_entity.cpp

در مک:

sed -i '' -e 's/MAX_MULTIPART_CNT         = 10 /MAX_MULTIPART_CNT         = 1 /' src/fdcache_entity.cpp

اسکریپت autogen.sh را برای تولید یک فایل پیکربندی اجرا کنید، برنامه را پیکربندی کنید و آن را از شاخه‌ی اصلی (Master Branch) کامپایل کنید:

./autogen.sh

./configure

make

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

make install

برنامه را در مقصد نهایی کپی کنید تا کامل نصب شود:

cp ~/s3fs-fuse/src/s3fs /usr/local/bin/s3fs

پیکربندی S3fs

دستورهای زیر را برای ورود کلیدهای S3 در فایل HOME/.passwd-s3fs$ و تنظیم مجوز فقط برای مالک اجرا کنید. این کار باعث می‌شود که شما کلیدهای API خود را به‌عنوان متغیرهای محیطی با نام‌های ACCESS_KEY و SECRET_KEY تنظیم کنید:

echo $ACCESS_KEY:$SECRET_KEY > $HOME/.passwd-s3fs

chmod 600 $HOME/.passwd-s3fs

دستورهای زیر را برای ایجاد یک فایل‌سیستم از یک صندوقچه‌ی موجود اجرا کنید. جایگزین‌های زیر را در متن دستور ایجاد کنید:

  • BUCKET-NAME$ را با نام صندوقچه‌ی فضای ابری خود و FOLDER-TO-MOUNT$ را با پوشه‌ی محلی برای نصب آن جایگزین کنید.
  • پارامتر Endpoint و url را با Endpoint صندوقچه خود جایگزین کنید (https://s3.ir-thr-at1.arvanstorage.ir).
s3fs $ BUCKET-NAME $FOLDER-TO-MOUNT -o allow_other -o passwd_file=$HOME/.passwd-s3fs -o use_path_request_style -o endpoint= ir-thr-at1 -o parallel_count=15 -o multipart_size=128 -o nocopyapi -o url=https:// s3.ir-thr-at1.arvanstorage.ir

فلگ o multipart_size=128- اندازه‌ی قطعه یا چانک (فایل-بخش) را برای آپلودهای چند قسمتی به 128 مگابایت تنظیم می‌کند. این مقدار به شما اجازه می‌دهد فایل‌هایی را تا حداکثر حجم فایل 128 گیگابایت آپلود کنید. مقادیر کمتر عملکرد بهتری به شما می‌دهد. می‌توانید این مقادیر را به شکل زیر تنظیم کنید:

  • حداقل اندازه‌ی چانک: 5 مگابایت برای افزایش کارایی (حداکثر حجم فایل: 5 گیگابایت)
  • حداکثر اندازه‌ی چانک: 5000 مگابایت برای افزایش حداکثر اندازه فایل (حداکثر اندازه فایل: 5 ترابایت)

توجه داشته باشید که باید این دستور را با root اجرا کنید تا آرگومان allow_other مجاز باشد.

خط زیر را به etc/fstab/ اضافه کنید تا فایل سیستم در بوت نصب شود.

s3fs#[bucket_name] /mount-point fuse _netdev,allow_other,use_path_request_style,url= https:// s3.ir-thr-at1.arvanstorage.ir/0 0

استفاده از فضای ابری به کمک S3fs

فایل‌سیستم صندوقچه‌ی نصب‌شده، در سیستم عامل شما مانند یک فایل‌سیستم محلی ظاهر می‌شود. به این معنا که شما می‌توانید به فایل‌ها به گونه‌ای دسترسی داشته باشید که گویی روی‌ هارد دیسک شما هستند.

توجه داشته باشید که هنگام استفاده از S3 به عنوان فایل سیستم محدودیت‌هایی وجود دارد:

  • نوشتن تصادفی یا ضمیمه کردن فایل‌ها نیاز به بازنویسی کل فایل دارد.
  • عملیات مربوط به متادیتا مانند فهرست کردن دایرکتوری‌ها به دلیل تأخیر شبکه، عملکرد ضعیفی دارند.
  • هیچ هماهنگی بین چندین مشتری که یک صندوقچه را نصب می‌کنند وجود ندارد
  • بدون تغییر نام اتمی‌فایل‌ها یا دایرکتوری‌ها
  • بدون لینک سخت