rclone را در Linux راه بیندازید
از نصب rclone شروع میکنید، Remote پارسپک را میسازید و با یک فایل کوچک، دسترسی خواندن و نوشتن را میسنجید. فایل آزمایشی در انتهای کار حذف میشود.

بعد از ساخت Remote در Linux، اتصال را با یک فایل کوچک امتحان میکنید: hello.txt با کلید tutorial/hello.txt آپلود میشود، فهرست و مشخصاتش را میبینید، آن را دانلود میکنید و در پایان از باکت پاکش میکنید. شرح این مسیر در صفحهٔ اصلی rclone آمده است.
اگر Remote هنوز مقدار پنل ندارد، هیچ فرمانی کار نمیکند. اگر آپلود را نزدهاید، مشخصات و دانلود معمولاً آرایه خالی یا خطا میدهند.
rclone را نصب و نسخهٔ آن را بررسی کنید
بعد از نصب، خروجی rclone version را ببینید تا مطمئن شوید باینری در PATH قرار گرفته است.
rclone version سازگاری نسخه را بسنجید.curl https://rclone.org/install.sh | sudo bash
rclone versionexamples/
├── .env.example
└── rclone/
└── run.sh # آپلود، فهرست، مشخصات، دانلود و حذف با rcloneRemote را با مقدارهای پنل بسازید
Endpoint، Region و دو کلید داخل Remote قرار میگیرند؛ نام Bucket در خود فرمان میآید. مسیر دقیق فایل تنظیمات را با rclone config file ببینید؛ در Linux معمولاً ~/.config/rclone/rclone.conf است.
examples/rclone/run.sh از متغیر محیطی استفاده میکند، نه فایل تنظیمات؛ پنج مقدار PARSPACK_S3_* را میخواند و خودش به نامهای rclone تبدیل میکند. اگر rclone config را برای استفاده تعاملی هم زدهاید، مشکلی ندارد — متغیر محیطی همیشه روی مقدار داخل فایل تنظیمات اولویت دارد.export RCLONE_CONFIG_PARSPACK_TYPE=s3
export RCLONE_CONFIG_PARSPACK_PROVIDER=Other
export RCLONE_CONFIG_PARSPACK_ENDPOINT=https://c123456.parspack.net
export RCLONE_CONFIG_PARSPACK_ACCESS_KEY_ID=YOUR_ACCESS_KEY
export RCLONE_CONFIG_PARSPACK_SECRET_ACCESS_KEY=YOUR_SECRET_KEY
export RCLONE_CONFIG_PARSPACK_REGION=us-east-1
export RCLONE_CONFIG_PARSPACK_NO_CHECK_BUCKET=trueاین مقدارها را در اسکریپتهای Public قرار ندهید. اگر از rclone config برای فایل تنظیمات استفاده میکنید، همان فایل را هم جایی Commit نکنید.
فهرست Bucket را از Linux بخوانید
rclone lsd parspack:c123456
rclone lsd parspack:c123456آپلود: فایل را در باکت بگذارید
rclone copyto ./hello.txt parspack:c123456/tutorial/hello.txt
copyto دقیقاً یک فایل را با یک نام مشخص کپی میکند؛ با copy اشتباه نگیرید که مقصد را همیشه پوشه فرض میکند و اسم فایل محلی را زیر آن پوشه تکرار میکند. بعد از آپلود، rclone حجم فایل محلی را با چیزی که همان لحظه از باکت خوانده مقایسه میکند؛ اگر یکی نبود «corrupted on transfer» میدهد و حداکثر سه بار دوباره میفرستد.rclone copyto ./hello.txt parspack:c123456/tutorial/hello.txt-v استفاده کنید)اگر tutorial/hello.txt از قبل وجود داشته باشد، Upload جدید همان مسیر را جایگزین میکند.
فهرست فایلها و مشخصات یک فایل
بعد از آپلود، اول ببینید فایل در فهرست هست؛ بعد حجم و نوع را بدون دانلود بخوانید.
rclone lsd روی یک سطح بالاتر از هم جدا کنید.lsjson را با مسیری بزنید که دقیقاً به نام فایل ختم میشود، نه اسلش؛ rclone یک آرایه تکعضوی برمیگرداند، نه یک شیء تنها — کد شما باید عضو صفرم آرایه را بخواند.rclone lsjson parspack:c123456/tutorial/rclone lsjson parspack:c123456/tutorial/hello.txt/ یعنی پوشه؛ بدون آن یعنی یک فایل دقیق.false است؛ برای پوشه true.دانلود: فایل را روی سیستم خودتان بنویسید
rclone copyto parspack:c123456/tutorial/hello.txt ./downloads/hello.txt
copyto است، فقط جهت را برعکس کردهاید: مبدأ مسیر روی باکت، مقصد مسیر محلی. پوشه مقصد اگر نباشد، rclone خودش میسازدش؛ اگر مسیر محلی از قبل با همین نام وجود داشته باشد، بدون هشدار رویش مینویسد.rclone copyto parspack:c123456/tutorial/hello.txt ./downloads/hello.txt-v استفاده کنید)حذف: نام را از باکت بردارید
rclone deletefile parspack:c123456/tutorial/hello.txt
deletefile دقیقاً یک فایل را حذف میکند. با delete اشتباه نگیرید؛ آن دستور روی مسیر پوشهای اجرا میشود و همه محتوایش را پاک میکند.rclone deletefile parspack:c123456/tutorial/hello.txt-v استفاده کنید)خطا را از مبدا پیدا کنید
در صورت خطا، اول فرمان فهرست Bucket را تکرار کنید. اگر همان فرمان هم ناموفق است، مشکل در تنظیمات اتصال است، نه دستور فایل.
0 یعنی موفق؛ هر عدد دیگری یعنی حداقل یک فرمان شکست خورده. متن خطا همیشه روی stderr است، نه stdout — اگر خروجی را redirect کردهاید، پیام خطا در فایل شما نیست. برای دیدن چه درخواستی واقعاً رفته، -vv اضافه کنید؛ این پرچم هر HTTP request را هم نشان میدهد.| خطا | علت معمول | بررسی |
|---|---|---|
command not found: rclone | نصب اسکریپت را با sudo نزدهاید یا shell فعلی، shell همان نصب نیست | which rclone؛ اگر خالی بود دوباره با sudo نصب کنید |
NoSuchBucket | نام Bucket با مقدار پنل یکی نیست | بخش بعد از parspack: در مسیر |
SignatureDoesNotMatch / AccessDenied | کلیدها یا Region درست نیست، یا Provider را AWS گذاشتهاید | access_key_id، secret_access_key، region، provider = Other |
didn't find section in config file | نام Remote را اشتباه تایپ کردهاید | نام دقیقاً باید parspack باشد |
Timeout / connection refused | Endpoint در دسترس نیست | آدرس HTTPS پنل، بدون تغییر و بدون / انتها |
کل آزمون را یکجا اجرا کنید
اسکریپت نمونه، همان فرمانهای بالا را با مقدارهای محیطی اجرا میکند. این روش برای تکرار تست روی سرور دیگر مناسبتر است.
curl https://rclone.org/install.sh | sudo bash
export RCLONE_CONFIG_PARSPACK_TYPE=s3
export RCLONE_CONFIG_PARSPACK_PROVIDER=Other
export RCLONE_CONFIG_PARSPACK_ENDPOINT=https://c123456.parspack.net
export RCLONE_CONFIG_PARSPACK_ACCESS_KEY_ID=YOUR_ACCESS_KEY
export RCLONE_CONFIG_PARSPACK_SECRET_ACCESS_KEY=YOUR_SECRET_KEY
export RCLONE_CONFIG_PARSPACK_REGION=us-east-1
export RCLONE_CONFIG_PARSPACK_NO_CHECK_BUCKET=true
printf 'hello ParsPack\n' > hello.txt
rclone lsd parspack:c123456
rclone copyto ./hello.txt parspack:c123456/tutorial/hello.txt
rclone lsjson parspack:c123456/tutorial/
rclone lsjson parspack:c123456/tutorial/hello.txt
rclone copyto parspack:c123456/tutorial/hello.txt ./downloads/hello.txt
rclone deletefile parspack:c123456/tutorial/hello.txtrclone version را قبل از گزارش مشکل چک کنید؛ رفتار بین نسخههای قدیمی و جدید کمی فرق دارد.