نام Remote
یک اسم کوتاه که شما انتخاب میکنید، نه مقداری از پنل.
parspack میگذاریم. هر فرمان با parspack:نام-باکت/مسیر شروع میشود. اگر اسم دیگری انتخاب کنید، فقط کافی است همان اسم را در همه فرمانها هم بگذارید.در rclone، مشخصات اتصال در یک Remote ذخیره میشود. یک بار آن را با Endpoint و کلیدهای پنل میسازید و بعد با چند فرمان مشخص، کل مسیر آپلود تا حذف را امتحان میکنید. اگر بعداً قرار است از sync استفاده کنید، اول همین آزمون کوچک را بدون خطا تمام کنید.

یک فایل کوچک را میفرستیم، اطلاعاتش را میخوانیم، دوباره دانلودش میکنیم و بعد پاکش میکنیم. با همین چرخه، هم شکل آدرسها روشن میشود و هم مجوزهای Remote.
فرض کنید روی سیستم خودتان فایلی به نام hello.txt دارید. میخواهید آن را در باکت خصوصی پارسپک با نام tutorial/hello.txt ذخیره کنید. بعد از ذخیره، باید بتوانید در فهرست ببینیدش، حجم و نوعش را بدون دانلود بخوانید، یک کپی روی سیستم خودتان بگیرید و در پایان از باکت حذفش کنید.
در rclone، مشخصات Endpoint و کلیدها زیر نامی به نام Remote ذخیره میشوند. اینجا نام Remote را parspack میگذاریم تا آدرس هر فایل به شکل parspack:bucket/key خوانده شود.
| ترتیب | فرمان | در این سناریو چه میکند |
|---|---|---|
| ۱ | lsd | اتصال Remote را چک میکند؛ پوشههای سطح بالای باکت را نشان میدهد |
| ۲ | copyto (آپلود) | فایل محلی ./hello.txt را با نام tutorial/hello.txt در باکت میگذارد |
| ۳ | lsjson (فهرست) | فایلهایی را نشان میدهد که مسیرشان با tutorial/ شروع میشود |
| ۴ | lsjson (مشخصات) | حجم، نوع و زمان تغییر همان یک فایل را میگوید؛ خود فایل را نمیآورد |
| ۵ | copyto (دانلود) | فایل را از باکت میگیرد و روی دیسک شما، مثلاً ./downloads/hello.txt، مینویسد |
| ۶ | deletefile | همان نام را از باکت برمیدارد؛ فایل روی سیستم شما دست نمیخورد |
همگامسازی پوشهها (sync) و اتصال دائم بهعنوان درایو (mount) در این آموزش نیست. rclone یک فرمان link برای ساخت URL موقت دارد، ولی پشتیبانی آن به هر بکاند S3-سازگار بستگی دارد و روی پارسپک اینجا تست نشده؛ اگر برنامهتان باید چنین لینکی به کاربر بدهد، همان جریان امضاشده را با یکی از SDKها بسازید — رفتارش مستند و تستشده است.
از پنل پارسپک، Endpoint، نام Bucket، Region، Access Key و Secret Key را بردارید. این مقدارها باید مربوط به همان سرویس و همان Bucket باشند.
یک اسم کوتاه که شما انتخاب میکنید، نه مقداری از پنل.
parspack میگذاریم. هر فرمان با parspack:نام-باکت/مسیر شروع میشود. اگر اسم دیگری انتخاب کنید، فقط کافی است همان اسم را در همه فرمانها هم بگذارید.به rclone میگوید این یک فضای S3-سازگار عمومی است، نه AWS.
Other را انتخاب کنید. اگر AWS بگذارید، rclone فرض میکند Endpoint شما یکی از منطقههای آمازون است و درخواستها به جای درستی نمیرسند.مخصوص تنظیم rclone؛ در SDKها معادلی ندارد.
true) بگذارید. بدون آن، rclone قبل از هر عملیات یک HeadBucket برای چککردن وجود باکت میفرستد. AWS این را پیاده کرده؛ خیلی از فضاهای S3-سازگار غیر از AWS این متد را ندارند و با خطا جواب میدهند — نتیجه این میشود که اولین فرمان شما با خطای اتصال شکست میخورد، در حالی که خود Endpoint، کلیدها و باکت هیچ مشکلی ندارند.برای کار دستی، ویزارد rclone config خواناتر است. در CI یا اسکریپت، متغیرهای محیطی امکان اجرای بدون فایل تنظیمات را میدهند.
برای استفاده روزمره از ترمینال شخصی خودتان
rclone config را بزنید و همین ترتیب را دنبال کنید: n برای Remote جدید، نام parspack، نوع را از فهرست طولانی سرویسها s3 انتخاب کنید، Provider را Other بگذارید، Endpoint و Access Key و Secret Key را از پنل کپی کنید، Region را us-east-1 بگذارید مگر پنل چیز دیگری گفته باشد، و برای no_check_bucket جواب true بدهید. در پایان y بزنید تا ذخیره شود.rclone config file ببینید؛ روی لینوکس و macOS معمولاً ~/.config/rclone/rclone.conf است.[parspack]
type = s3
provider = Other
endpoint = https://c123456.parspack.net
access_key_id = YOUR_ACCESS_KEY
secret_access_key = YOUR_SECRET_KEY
region = us-east-1
no_check_bucket = trueبدون فایل تنظیمات؛ مشخصات اتصال فقط در محیط همان Process قرار میگیرد
RCLONE_CONFIG_<REMOTE>_<KEY> هم از متغیر محیطی میخواند. این روش برای اسکریپتهای نمونه همین مستندات و برای اجرای خودکار (CI) استفاده میشود؛ نیازی به فایل rclone.conf نیست.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=truetype، provider و no_check_bucket رفتار rclone را تعیین میکنند؛ نام Bucket داخل آدرس هر فرمان نوشته میشود. اسکریپت examples/rclone/run.sh این نگاشت را از متغیرهای PARSPACK_S3_* انجام میدهد.هر دو روش کلید API را روی همان سیستمی نگه میدارند که rclone را اجرا میکنید. فایل rclone.conf را Commit نکنید؛ اگر متغیر محیطی استفاده میکنید، آنها را در اسکریپتهای Public قرار ندهید.
در parspack:c123456/tutorial/hello.txt، بخش قبل از دونقطه نام Remote، بخش بعدی نام Bucket و ادامهٔ آدرس Key فایل است. اشتباه در هر یک، خطای متفاوتی میسازد.
./hello.txt است. داخل باکت همان محتوا با نام tutorial/hello.txt ذخیره میشود. اسلش داخل مسیر پوشه واقعی روی دیسک باکت نمیسازد؛ فقط بخشی از نام است. اگر مسیر با / تمام شود، rclone آن را «پوشه» حساب میکند و فهرست همان سطح را نشان میدهد؛ اگر بدون / باشد، دنبال یک فایل دقیق با همان نام میگردد.| چیزی که میگویید | مثال این آموزش | معنیاش چیست |
|---|---|---|
| Remote | parspack | اسم کوتاهی که به تنظیمات اتصال شما اشاره میکند |
| مسیر کامل | parspack:c123456/tutorial/hello.txt | Remote، Bucket و Key در یک رشته |
| مسیر محلی | ./hello.txt | فایل روی همین سیستم |
| Object Key | tutorial/hello.txt | نام کامل فایل داخل باکت |
| مسیر با اسلش انتها | parspack:c123456/tutorial/ | یک پوشه؛ برای فهرستگیری استفاده میشود |
| جایگزینی | آپلود دوباره با همان مسیر | محتوای قبلی همان نام عوض میشود؛ نسخه جدا ساخته نمیشود |
lsjson را روی tutorial/ (با اسلش) بزنید، همه فایلهای همان پوشه را میبینید. اگر همان مسیر را بدون اسلش و بدون نام فایل بزنید، rclone گیج میشود که پوشه میخواهید یا فایل؛ همیشه برای پوشه از اسلش انتها و برای فایل از نام کامل استفاده کنید.تست فقط با دیدن نام Bucket کامل نیست. یک فایل کوچک بفرستید، متادیتای آن را بخوانید، دانلودش کنید و در پایان فایل آزمایشی را پاک کنید.
printf 'hello ParsPack\n' > hello.txtrclone lsd parspack:c123456
rclone copyto ./hello.txt parspack:c123456/tutorial/hello.txt
copyto دقیقاً یک فایل را با یک نام مشخص کپی میکند؛ با copy اشتباه نگیرید که مقصد را همیشه پوشه فرض میکند. بعد از آپلود، rclone خودش حجم فایل را با نسخه روی باکت مقایسه میکند؛ اگر یکی نبود، خطای «corrupted on transfer» میدهد و دوباره تلاش میکند.-v استفاده کنید)rclone lsjson parspack:c123456/tutorial/
rclone lsjson parspack:c123456/tutorial/hello.txt
rclone copyto parspack:c123456/tutorial/hello.txt ./downloads/hello.txt
copyto است، فقط جهت را برعکس کردهاید: مبدأ حالا مسیر روی باکت است، مقصد مسیر محلی. پوشه downloads اگر نباشد، rclone خودش میسازدش.rclone deletefile parspack:c123456/tutorial/hello.txt
deletefile دقیقاً یک فایل را حذف میکند. با delete اشتباه نگیرید؛ آن دستور روی یک مسیر پوشهای اجرا میشود و همه محتوایش را پاک میکند — اگر بهجای deletefile از delete روی مسیر پوشه استفاده کنید، ممکن است بیشتر از یک فایل حذف شود.اگر فهرست Bucket باز نمیشود، هنوز نوبت بررسی فرمان آپلود نیست. متن کامل خطا را بخوانید و Endpoint، Region، کلیدها و ساعت سیستم را بهترتیب چک کنید.
lsd خطا میدهد، ابتدا خود اتصال را درست کنید: Endpoint، Provider، Region و دو کلید را با پنل مقایسه کنید. بررسی نام پوشه و فایل زمانی مفید است که Remote بتواند باکت را ببیند.| خطا | علت معمول | بررسی |
|---|---|---|
directory not found | مسیر روی باکت وجود ندارد یا اسلش انتها را فراموش کردهاید | ابتدا با lsd ریشه باکت را چک کنید |
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 را اشتباه تایپ کردهاید | نام دقیقاً باید همان چیزی باشد که با rclone config ساختید — اینجا parspack |
| Timeout / connection refused | Endpoint در دسترس نیست | آدرس HTTPS پنل، بدون تغییر و بدون / انتها |
| Local file not found | مسیر فایل روی سیستم اشتباه است | مسیر را نسبت به جایی که فرمان را اجرا کردهاید چک کنید |
مفهومها در هر سه پلتفرم یکی است؛ صفحهٔ هر سیستمعامل، روش نصب، محل فایل تنظیمات و فرمانهای آمادهٔ کپی را دارد.
hello.txt را با فرمانهای مناسب همان محیط کامل میکند. پس از موفقیت آپلود، فهرست و دانلود، مسیر آزمایشی را با مسیر واقعی کارتان جایگزین کنید.examples/
├── .env.example
└── rclone/
└── run.sh # آپلود، فهرست، مشخصات، دانلود و حذف با rclone