PP مستندات فضای ابری پارس‌پک
rclone · bash

rclone را در Linux راه بیندازید

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

مخصوص Linuxخروجی نمونهقابل اجرا در bash
اجرای rclone روی Linux متصل به فضای ذخیره‌سازی
شش فرمان با خروجی نمونه

بعد از ساخت Remote در Linux، اتصال را با یک فایل کوچک امتحان می‌کنید: hello.txt با کلید tutorial/hello.txt آپلود می‌شود، فهرست و مشخصاتش را می‌بینید، آن را دانلود می‌کنید و در پایان از باکت پاکش می‌کنید. شرح این مسیر در صفحهٔ اصلی rclone آمده است.

اگر Remote هنوز مقدار پنل ندارد، هیچ فرمانی کار نمی‌کند. اگر آپلود را نزده‌اید، مشخصات و دانلود معمولاً آرایه خالی یا خطا می‌دهند.

۱

rclone را نصب و نسخهٔ آن را بررسی کنید

بعد از نصب، خروجی rclone version را ببینید تا مطمئن شوید باینری در PATH قرار گرفته است.

فرمان زیر نصب‌کنندهٔ رسمی rclone است و نسخهٔ منتشرشده در سایت پروژه را دریافت می‌کند. اگر سیاست سرور اجازهٔ اجرای اسکریپت دانلودی را نمی‌دهد، از بستهٔ توزیع استفاده کنید و بعد با rclone version سازگاری نسخه را بسنجید.
terminal (bash) · نصب و بررسی
curl https://rclone.org/install.sh | sudo bash
rclone version
ساختار فایل‌ها
examples/
├── .env.example
└── rclone/
  └── run.sh      # آپلود، فهرست، مشخصات، دانلود و حذف با rclone
۲

Remote را با مقدارهای پنل بسازید

Endpoint، Region و دو کلید داخل Remote قرار می‌گیرند؛ نام Bucket در خود فرمان می‌آید. مسیر دقیق فایل تنظیمات را با rclone config file ببینید؛ در Linux معمولاً ~/.config/rclone/rclone.conf است.

اسکریپت نمونه examples/rclone/run.sh از متغیر محیطی استفاده می‌کند، نه فایل تنظیمات؛ پنج مقدار PARSPACK_S3_* را می‌خواند و خودش به نام‌های rclone تبدیل می‌کند. اگر rclone config را برای استفاده تعاملی هم زده‌اید، مشکلی ندارد — متغیر محیطی همیشه روی مقدار داخل فایل تنظیمات اولویت دارد.
terminal (bash) · تنظیم Remote با متغیر محیطی
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

این فرمان پوشه‌های سطح بالای باکت را نشان می‌دهد؛ هنوز کاری با فایل شما ندارد. اگر Endpoint یا کلیدها اشتباه باشد، همین‌جا خطا می‌گیرید — نه در آپلود.
terminal (bash)
rclone lsd parspack:c123456
خروجی نمونه
-1 2026-08-18 10:00:00 -1 tutorial
۴

آپلود: فایل را در باکت بگذارید

rclone copyto ./hello.txt parspack:c123456/tutorial/hello.txt

copyto دقیقاً یک فایل را با یک نام مشخص کپی می‌کند؛ با copy اشتباه نگیرید که مقصد را همیشه پوشه فرض می‌کند و اسم فایل محلی را زیر آن پوشه تکرار می‌کند. بعد از آپلود، rclone حجم فایل محلی را با چیزی که همان لحظه از باکت خوانده مقایسه می‌کند؛ اگر یکی نبود «corrupted on transfer» می‌دهد و حداکثر سه بار دوباره می‌فرستد.
terminal (bash)
rclone copyto ./hello.txt parspack:c123456/tutorial/hello.txt
خروجی نمونه
(بدون خروجی؛ یعنی آپلود موفق بوده — برای دیدن جزئیات از -v استفاده کنید)
!

اگر tutorial/hello.txt از قبل وجود داشته باشد، Upload جدید همان مسیر را جایگزین می‌کند.

۵

فهرست فایل‌ها و مشخصات یک فایل

بعد از آپلود، اول ببینید فایل در فهرست هست؛ بعد حجم و نوع را بدون دانلود بخوانید.

اسلش انتهای مسیر یعنی «این یک پوشه است»؛ خروجی یک آرایه JSON از فایل‌های همان پوشه است، نه محتوای خود فایل‌ها. آرایه خالی دو تا علت دارد: یا آپلود قبل از این فرمان انجام نشده، یا مسیر Prefix را غلط نوشته‌اید — این دو را با زدن rclone lsd روی یک سطح بالاتر از هم جدا کنید.
برای مشخصات یک فایل، همان lsjson را با مسیری بزنید که دقیقاً به نام فایل ختم می‌شود، نه اسلش؛ rclone یک آرایه تک‌عضوی برمی‌گرداند، نه یک شیء تنها — کد شما باید عضو صفرم آرایه را بخواند.
terminal (bash) · فهرست پوشه
rclone lsjson parspack:c123456/tutorial/
خروجی نمونه
[ {"Path":"hello.txt","Name":"hello.txt","Size":15,"MimeType":"text/plain","ModTime":"2026-08-18T10:00:00.000000000Z","IsDir":false} ]
terminal (bash) · مشخصات یک فایل
rclone lsjson parspack:c123456/tutorial/hello.txt
خروجی نمونه
[ {"Path":"hello.txt","Name":"hello.txt","Size":15,"MimeType":"text/plain","ModTime":"2026-08-18T10:00:00.000000000Z","IsDir":false} ]
اسلش انتهامسیر با / یعنی پوشه؛ بدون آن یعنی یک فایل دقیق.
IsDirبرای فایل همیشه false است؛ برای پوشه true.
آرایه خالییعنی آپلود انجام نشده یا مسیر اشتباه است.
۶

دانلود: فایل را روی سیستم خودتان بنویسید

rclone copyto parspack:c123456/tutorial/hello.txt ./downloads/hello.txt

همان copyto است، فقط جهت را برعکس کرده‌اید: مبدأ مسیر روی باکت، مقصد مسیر محلی. پوشه مقصد اگر نباشد، rclone خودش می‌سازدش؛ اگر مسیر محلی از قبل با همین نام وجود داشته باشد، بدون هشدار رویش می‌نویسد.
terminal (bash)
rclone copyto parspack:c123456/tutorial/hello.txt ./downloads/hello.txt
خروجی نمونه
(بدون خروجی؛ یعنی دانلود موفق بوده — برای دیدن جزئیات از -v استفاده کنید)
۷

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

rclone deletefile parspack:c123456/tutorial/hello.txt

deletefile دقیقاً یک فایل را حذف می‌کند. با delete اشتباه نگیرید؛ آن دستور روی مسیر پوشه‌ای اجرا می‌شود و همه محتوایش را پاک می‌کند.
terminal (bash)
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 refusedEndpoint در دسترس نیستآدرس HTTPS پنل، بدون تغییر و بدون / انتها
۹

کل آزمون را یک‌جا اجرا کنید

اسکریپت نمونه، همان فرمان‌های بالا را با مقدارهای محیطی اجرا می‌کند. این روش برای تکرار تست روی سرور دیگر مناسب‌تر است.

terminal (bash) · از ابتدا تا انتها
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.txt
cron / systemd timerبرای اجرای زمان‌بندی‌شده، همین export را در ابتدای اسکریپت بگذارید؛ خدمات پس‌زمینه محیط تعاملی شما را نمی‌بینند.
به‌جای rclone.confروی سرورهای بدون دسترسی تعاملی، متغیرهای محیطی را در فایل سرویس (مثلاً واحد systemd) تعریف کنید.
نسخهrclone version را قبل از گزارش مشکل چک کنید؛ رفتار بین نسخه‌های قدیمی و جدید کمی فرق دارد.
سناریوی کامل Linux آماده است.نصب، تنظیم Remote و شش فرمان در همین صفحه است؛ اسکریپت خودکار در examples/rclone/run.sh.
دریافت rclone.zip