| ARIA2C(1) | aria2 | ARIA2C(1) |
NAME
aria2c - ابزار فوقالعاده سریع دانلود فایل
خلاصه دستور (SYNOPSIS)
aria2c [<گزینهها>] [<نشانی>|<مگنت>|<فایل_تورنت>|<فایل_متالینک>] ...
توضیحات (DESCRIPTION)
برنامه aria2 ابزاری برای دانلود فایلها است. پروتکلهای پشتیبانیشده عبارتند از HTTP(S)، FTP، SFTP، BitTorrent و Metalink. ابزار aria2 میتواند یک فایل را از چندین منبع/پروتکل مختلف دانلود کرده و تلاش میکند از حداکثر پهنای باند دانلود شما بهره ببرد. این ابزار از دانلود همزمان یک فایل از طریق HTTP(S)/FTP/SFTP و BitTorrent پشتیبانی میکند، در حالی که دادههای دانلودشده از طریق HTTP(S)/FTP/SFTP در ازدحام (swarm) بیتتورنت آپلود میشوند. با استفاده از جمعهای کنترلی (checksum) قطعات متالینک، aria2 بهطور خودکار صحت قطعات داده را در حین دانلود فایل اعتبارسنجی میکند.
گزینهها (OPTIONS)
نکته:
گزینههای پایه (Basic Options)
- -d, --dir=<DIR>
- پوشه ذخیرهسازی فایل دانلودشده.
- -i, --input-file=<FILE>
- دانلود نشانیهای (URI) فهرستشده در FILE. شما میتوانید با قرار دادن چندین نشانی در یک خط و جدا کردن آنها با نویسه TAB، چندین منبع را برای یک مورد واحد مشخص کنید. علاوه بر این، میتوان گزینهها را بعد از هر خط نشانی مشخص کرد. خطوط گزینهها باید با یک یا چند نویسه فاصله خالی (SPACE یا TAB) آغاز شوند و در هر خط فقط باید یک گزینه قرار گیرد. فایلهای ورودی میتوانند از فشردهسازی gzip استفاده کنند. هنگامی که FILE به صورت - مشخص شود، aria2 ورودی را از stdin میخواند. برای جزئیات بیشتر زیربخش Input File را ببینید. همچنین گزینه --deferred-input را ببینید. همچنین گزینه --save-session را ببینید.
- -l, --log=<LOG>
- نام فایل لاگ (گزارش). اگر - مشخص شود، لاگ در stdout نوشته میشود. اگر رشته خالی ("") مشخص شود، یا این گزینه حذف گردد، هیچ گزارشی در دیسک نوشته نخواهد شد.
- -j, --max-concurrent-downloads=<N>
- تنظیم
حداکثر
تعداد
دانلودهای
همروند
برای هر
مورد در صف.
همچنین
گزینه --split را
ببینید.
پیشفرض: 5
نکته:
http://example.com/foo http://example.com/bar
در اینجا ۲ مورد دانلود وجود دارد. اگر مقداری بزرگتر یا مساوی ۲ به --max-concurrent-downloads داده شود، aria2 میتواند این موارد را بهصورت همزمان دانلود کند. در هر مورد دانلود، میتوانید تعداد اتصالها را با استفاده از --split و/یا --min-split-size و غیره پیکربندی کنید.
- -V, --check-integrity [true|false]
- بررسی صحت و یکپارچگی فایل با اعتبارسنجی هش قطعات یا هش کل فایل. این گزینه فقط در دانلودهای بیتتورنت، متالینک حاوی جمعهای کنترلی (checksum)، یا دانلودهای HTTP(S)/FTP همراه با گزینه --checksum اثرگذار است. اگر هشهای قطعات ارائه شده باشند، این گزینه میتواند بخشهای آسیبدیده فایل را شناسایی کرده و آنها را دوباره دانلود کند. اگر هش کل فایل ارائه شده باشد، بررسی هش تنها زمانی انجام میشود که فایل قبلاً دانلود شده باشد؛ این موضوع از طریق طول فایل تعیین میشود. اگر بررسی هش ناموفق باشد، فایل از ابتدا دوباره دانلود میشود. اگر هم هش قطعات و هم هش کل فایل ارائه شده باشند، تنها هش قطعات استفاده میشود. پیشفرض: false
- -c, --continue [true|false]
- ادامه دادن دانلود فایلی که بخشی از آن دانلود شده است. از این گزینه برای ازسرگیری دانلودی استفاده کنید که توسط یک مرورگر وب یا برنامه دیگری که فایلها را بهصورت ترتیبی از ابتدا دانلود میکند، آغاز شده است. در حال حاضر این گزینه فقط برای دانلودهای HTTP(S)/FTP کاربرد دارد.
- -h, --help[=<TAG>|<KEYWORD>]
- پیامهای راهنما با برچسبها طبقهبندی شدهاند. یک برچسب با # شروع میشود. به عنوان مثال، برای دریافت راهنمای گزینههای دارای برچسب #http عبارت --help=#http را وارد کنید. اگر کلمهای بدون برچسب داده شود، راهنمای گزینههایی که نامشان شامل آن کلمه است چاپ میشود. مقادیر موجود: #basic، #advanced، #http، #https، #ftp، #metalink، #bittorrent، #cookie، #hook، #file، #rpc، #checksum، #experimental، #deprecated، #help، #all پیشفرض: #basic
گزینههای HTTP/FTP/SFTP (HTTP/FTP/SFTP Options)
- --all-proxy=<PROXY>
- استفاده از
سرور
پروکسی
برای همه
پروتکلها.
برای
بازنویسی
پروکسی از
پیش
تعریفشده،
از ""
استفاده
کنید.
همچنین
میتوانید
با استفاده
از
گزینههای
--http-proxy، --https-proxy و
--ftp-proxy این
تنظیم را
بازنویسی
کرده و برای
یک پروتکل
خاص پروکسی
مشخص کنید.
این تنظیم
بر همه
دانلودها
تأثیر
میگذارد.
قالب PROXY
بهصورت
[http://][USER:PASSWORD@]HOST[:PORT] است.
همچنین بخش
ENVIRONMENT را
ببینید.
نکته:
مثالی دیگر: اگر در خط فرمان --http-proxy="http://user:pass@proxy" --http-proxy-user="myname" --http-proxy-passwd="mypass" را مشخص کرده باشید، آنگاه پروکسی HTTP با نشانی http://proxy و با نام کاربری myname و گذرواژه mypass اعمال خواهد شد.
یک مثال دیگر: اگر در خط فرمان --http-proxy-user="myname" --http-proxy-passwd="mypass" --http-proxy="http://user:pass@proxy" را مشخص کرده باشید، آنگاه پروکسی HTTP با نشانی http://proxy و با نام کاربری user و گذرواژه pass اعمال خواهد شد.
- --all-proxy-passwd=<PASSWD>
- تنظیم گذرواژه برای گزینه --all-proxy.
- --all-proxy-user=<USER>
- تنظیم نام کاربری برای گزینه --all-proxy.
- --checksum=<TYPE>=<DIGEST>
- تنظیم جمع کنترلی (checksum). مقدار TYPE نوع هش است. انواع هش پشتیبانیشده در بخش Hash Algorithms خروجی aria2c -v فهرست شدهاند. مقدار DIGEST خلاصه هگزادسیمال (hex digest) است. برای مثال، تنظیم خلاصه sha-1 به این صورت است: sha-1=0192ba11326fe2298c8cb4de616f4d4140213838 این گزینه فقط برای دانلودهای HTTP(S)/FTP اعمال میشود.
- --connect-timeout=<SEC>
- تنظیم مهلت زمان اتصال (connect timeout) به ثانیه برای برقراری ارتباط با سرور HTTP/FTP/پروکسی. پس از برقراری اتصال، این گزینه بیاثر شده و بهجای آن گزینه --timeout استفاده میشود. پیشفرض: 60
- --dry-run [true|false]
- اگر مقدار true داده شود، aria2 صرفاً در دسترس بودن فایل دوردست را بررسی میکند و دادهای را دانلود نمیکند. این گزینه بر دانلودهای HTTP/FTP اثر دارد. در صورت تعیین true، دانلودهای بیتتورنت لغو میشوند. پیشفرض: false
- --lowest-speed-limit=<SPEED>
- بستن اتصال در صورتی که سرعت دانلود کمتر یا مساوی با این مقدار (بایت بر ثانیه) باشد. مقدار 0 به این معنی است که aria2 محدودیت حداقل سرعت ندارد. میتوانید پسوند K یا M را اضافه کنید (1K = 1024, 1M = 1024K). این گزینه بر دانلودهای بیتتورنت تأثیری ندارد. پیشفرض: 0
- -x, --max-connection-per-server=<NUM>
- حداکثر تعداد اتصالها به یک سرور برای هر دانلود. پیشفرض: 1
- --max-file-not-found=<NUM>
- اگر aria2 بدون
دریافت حتی
یک بایت،
وضعیت "file not found"
را به تعداد
NUM بار از
سرورهای
دوردست HTTP/FTP
دریافت
کند،
دانلود را
به اجبار
ناموفق
اعلام
میکند.
برای
غیرفعال
کردن این
گزینه
مقدار 0 را
تعیین کنید.
این گزینه
تنها هنگام
استفاده از
سرورهای HTTP/FTP
مؤثر است.
تعداد
تلاشهای
مجدد در
شمارش --max-tries
لحاظ
میشود،
بنابراین
آن گزینه
نیز باید
پیکربندی
شود.
پیشفرض: 0
- -m, --max-tries=<N>
- تنظیم تعداد دفعات تلاش. مقدار 0 به معنای نامحدود است. همچنین گزینه --retry-wait را ببینید. پیشفرض: 5
- -k, --min-split-size=<SIZE>
- ابزار aria2 محدوده کمتر از 2*SIZE بایت را تکه نمیکند. به عنوان مثال، دانلود یک فایل 20MiB را در نظر بگیرید. اگر مقدار SIZE برابر 10M باشد، aria2 میتواند فایل را به ۲ محدوده [0-10MiB) و [10MiB-20MiB) تقسیم کرده و با استفاده از ۲ منبع دانلود کند (البته در صورتی که --split >= 2 باشد). اگر مقدار SIZE برابر 15M باشد، چون 2*15M > 20MiB است، aria2 فایل را تقسیم نکرده و آن را با ۱ منبع دانلود میکند. میتوانید پسوند K یا M را اضافه کنید (1K = 1024, 1M = 1024K). مقادیر ممکن: 1M -1024M پیشفرض: 20M
- --netrc-path=<FILE>
- مشخص کردن
مسیر فایل netrc.
پیشفرض:
$(HOME)/.netrc
نکته:
- -n, --no-netrc [true|false]
- غیرفعال
کردن
پشتیبانی
از netrc.
پشتیبانی
از netrc بهطور
پیشفرض
فعال است.
نکته:
- --no-proxy=<DOMAINS>
- مشخص کردن
فهرستی از
نامهای
میزبان،
دامنهها و
آدرسهای
شبکه با یا
بدون ماسک
زیرشبکه (subnet mask)
جداشده با
کاما، که
نباید برای
آنها از
پروکسی
استفاده
شود.
نکته:
- -o, --out=<FILE>
- نام فایل
دانلودشده.
این نام
همیشه نسبت
به پوشه
دادهشده
در گزینه --dir
در نظر
گرفته
میشود.
هنگامی که
از گزینه
--force-sequential
استفاده
شود، این
گزینه
نادیده
گرفته
میشود.
نکته:
مثال:
$ aria2c -o myfile.zip "http://mirror1/file.zip" "http://mirror2/file.zip"
- --proxy-method=<METHOD>
- تنظیم متد مورداستفاده در درخواست پروکسی. مقدار METHOD میتواند get یا tunnel باشد. دانلودهای HTTPS صرفنظر از این گزینه همیشه از tunnel استفاده میکنند. پیشفرض: get
- -R, --remote-time [true|false]
- دریافت برچسب زمان (timestamp) فایل دوردست از سرور HTTP/FTP دوردست و اعمال آن روی فایل محلی در صورت در دسترس بودن. پیشفرض: false
- --reuse-uri [true|false]
- استفاده مجدد از نشانیهای استفادهشده قبلی در صورتی که هیچ نشانی استفادهنشدهای باقی نمانده باشد. پیشفرض: true
- --retry-wait=<SEC>
- تنظیم ثانیههای انتظار میان تلاشهای مجدد. هنگامی که SEC > 0 باشد، در صورتی که سرور HTTP پاسخ 503 برگرداند، aria2 دانلود را مجدداً تلاش خواهد کرد. پیشفرض: 0
- --server-stat-of=<FILE>
- مشخص کردن نام فایلی که نمایه کارایی (performance profile) سرورها در آن ذخیره میشود. میتوانید دادههای ذخیرهشده را با استفاده از گزینه --server-stat-if بارگذاری کنید. برای قالب فایل، زیربخش Server Performance Profile در زیر را ببینید.
- --server-stat-if=<FILE>
- مشخص کردن نام فایل برای بارگذاری نمایه کارایی سرورها. دادههای بارگذاریشده در برخی انتخابکنندههای نشانی مانند feedback استفاده خواهند شد. همچنین گزینه --uri-selector را ببینید. برای قالب فایل، زیربخش Server Performance Profile در زیر را ببینید.
- --server-stat-timeout=<SEC>
- مشخص کردن مهلت زمانی به ثانیه برای باطل کردن نمایه کارایی سرورها از زمان آخرین تماس با آنها. پیشفرض: 86400 (۲۴ ساعت)
- -s, --split=<N>
- دانلود یک
فایل با
استفاده از
N اتصال. اگر
بیش از N
نشانی داده
شود، ابتدا
N نشانی اول
استفاده
شده و
نشانیهای
باقیمانده
برای
پشتیبان به
کار
میروند.
اگر کمتر از
N نشانی
داده شود،
آن
نشانیها
بیش از یک
بار
استفاده
میشوند تا
در مجموع N
اتصال
بهطور
همزمان
برقرار شود.
تعداد
اتصالها
به یک
میزبان
واحد توسط
گزینه
--max-connection-per-server
محدود
میشود.
همچنین
گزینه --min-split-size
را ببینید.
پیشفرض: 5
نکته:
- --stream-piece-selector=<SELECTOR>
- مشخص کردن الگوریتم انتخاب قطعه در دانلودهای HTTP/FTP. یک قطعه (piece) بخشی با طول ثابت است که در دانلود چندتکهای بهصورت موازی دانلود میشود. پیشفرض: default.
- default
- انتخاب قطعه به گونهای که تعداد اتصالهای برقرارشده کاهش یابد. این یک رفتار پیشفرض منطقی است چرا که برقراری اتصال یک عملیات هزینهبر محسوب میشود.
- inorder
- انتخاب قطعهای که به ابتدای فایل نزدیکتر است. این برای تماشای فیلم همزمان با دانلود مفید است. گزینه --enable-http-pipelining ممکن است برای کاهش بار اضافی اتصالهای مجدد سودمند باشد. توجه داشته باشید که aria2 گزینه --min-split-size را رعایت میکند، بنابراین لازم است مقدار معقولی برای گزینه --min-split-size تعیین شود.
- random
- انتخاب تصادفی یک قطعه. همانند inorder، گزینه --min-split-size نیز رعایت میشود.
- geom
- هنگام شروع دانلود فایل، مانند inorder قطعهای را انتخاب میکند که به ابتدای فایل نزدیکتر است، اما سپس فاصله بین قطعات را بهصورت تصاعدی افزایش میدهد. این کار تعداد اتصالات برقرارشده را کاهش میدهد، در حالی که همزمان بخش ابتدایی فایل را زودتر دانلود میکند. این حالت برای تماشای فیلم هنگام دانلود بسیار مفید است.
- -t, --timeout=<SEC>
- تنظیم مهلت زمانی (timeout) به ثانیه. پیشفرض: 60
- --uri-selector=<SELECTOR>
- مشخص کردن الگوریتم انتخاب نشانی (URI). مقادیر ممکن عبارتند از inorder، feedback و adaptive. اگر inorder داده شود، نشانیها به همان ترتیبی که در فهرست ظاهر شدهاند آزمایش میشوند. اگر feedback داده شود، aria2 از سرعت دانلود مشاهدهشده در دانلودهای پیشین استفاده کرده و سریعترین سرور را در فهرست نشانیها انتخاب میکند. این کار همچنین آینههای (mirrors) از کار افتاده را رد میکند. سرعت دانلود مشاهدهشده بخشی از نمایه کارایی سرورها است که در گزینههای --server-stat-of و --server-stat-if به آن اشاره شد. اگر adaptive داده شود، یکی از بهترین آینهها را برای اتصالهای اول و ذخیره انتخاب میکند. برای اتصالهای تکمیلی، آینههایی را برمیگرداند که هنوز آزمایش نشدهاند، و اگر همه آنها قبلاً آزمایش شده باشند، آینههایی را برمیگرداند که باید مجدداً آزمایش شوند. در غیر این صورت، دیگر آینهای انتخاب نمیکند. این حالت مانند feedback، از نمایه کارایی سرورها بهره میبرد. پیشفرض: feedback
گزینههای اختصاصی HTTP (HTTP Specific Options)
- --ca-certificate=<FILE>
- استفاده از
مراجع صدور
گواهی (CA)
موجود در FILE
برای
اعتبارسنجی
همتایان (peers).
فایل گواهی
باید در
قالب PEM باشد
و میتواند
شامل چندین
گواهی CA
باشد. برای
فعالسازی
اعتبارسنجی
از گزینه
--check-certificate
استفاده
کنید.
نکته:
نکته:
- --certificate=<FILE>
- استفاده از
گواهی
کلاینت
موجود در FILE.
گواهی باید
در قالب PKCS12 (.p12, .pfx)
یا PEM باشد.
فایلهای PKCS12 باید حاوی گواهی، کلید و اختیاری زنجیرهای از گواهیهای اضافی باشند. فقط فایلهای PKCS12 با گذرواژه واردسازی (import) خالی قابل باز شدن هستند!
هنگام استفاده از PEM، باید کلید خصوصی را نیز از طریق --private-key مشخص کنید.
نکته:
نکته:
- --check-certificate [true|false]
- اعتبارسنجی همتا با استفاده از گواهیهای مشخصشده در گزینه --ca-certificate. پیشفرض: true
- --http-accept-gzip [true|false]
- ارسال
سربرگ
درخواست
Accept-Encoding: deflate, gzip و از
حالت فشرده
خارج کردن
پاسخ در
صورتی که
سرور
دوردست با
Content-Encoding: gzip یا Content-Encoding:
deflate پاسخ دهد.
پیشفرض: false
نکته:
- --http-auth-challenge [true|false]
- ارسال سربرگ احراز هویت HTTP تنها زمانی که توسط سرور درخواست شده باشد. اگر روی false تنظیم شود، سربرگ احراز هویت همیشه به سرور ارسال میگردد. یک استثنا وجود دارد: اگر نام کاربری و گذرواژه در نشانی (URI) قرار داده شده باشند، صرفنظر از این گزینه سربرگ احراز هویت همیشه به سرور ارسال میشود. پیشفرض: false
- --http-no-cache [true|false]
- ارسال سربرگهای Cache-Control: no-cache و Pragma: no-cache برای جلوگیری از محتوای کششده. اگر مقدار false داده شود، این سربرگها ارسال نمیشوند و شما میتوانید با استفاده از گزینه --header سربرگ Cache-Control را با دستورالعمل دلخواه خود اضافه کنید. پیشفرض: false
- --http-user=<USER>
- تنظیم نام کاربری HTTP. این بر تمامی نشانیها اعمال میشود.
- --http-passwd=<PASSWD>
- تنظیم گذرواژه HTTP. این بر تمامی نشانیها اعمال میشود.
- --http-proxy=<PROXY>
- استفاده از یک سرور پروکسی برای HTTP. برای بازنویسی پروکسی تعریفشده قبلی، از "" استفاده کنید. همچنین گزینه --all-proxy را ببینید. این بر تمامی دانلودهای HTTP اثر میگذارد. قالب PROXY بهصورت [http://][USER:PASSWORD@]HOST[:PORT] است.
- --http-proxy-passwd=<PASSWD>
- تنظیم گذرواژه برای --http-proxy.
- --http-proxy-user=<USER>
- تنظیم نام کاربری برای --http-proxy.
- --https-proxy=<PROXY>
- استفاده از سرور پروکسی برای HTTPS. برای بازنویسی پروکسی تعریفشده قبلی، از "" استفاده کنید. همچنین گزینه --all-proxy را ببینید. این بر تمامی دانلودهای HTTPS اثر میگذارد. قالب PROXY بهصورت [http://][USER:PASSWORD@]HOST[:PORT] است.
- --https-proxy-passwd=<PASSWD>
- تنظیم گذرواژه برای --https-proxy.
- --https-proxy-user=<USER>
- تنظیم نام کاربری برای --https-proxy.
- --private-key=<FILE>
- استفاده از کلید خصوصی موجود در FILE. کلید خصوصی باید رمزگشاییشده و در قالب PEM باشد. کلید رمزنگاریشده ممکن است رفتارهای تعریفنشده ایجاد کند. همچنین گزینه --certificate را ببینید.
- --referer=<REFERER>
- تنظیم ارجاعدهنده HTTP (سربرگ Referer). این بر تمامی دانلودهای HTTP/HTTPS اعمال میشود. اگر * داده شود، خود نشانی دانلود نیز به عنوان ارجاعدهنده استفاده میشود. این ممکن است هنگام استفاده همراه با گزینه --parameterized-uri سودمند باشد.
- --enable-http-keep-alive [true|false]
- فعالسازی اتصال پایدار (persistent connection) در HTTP/1.1. پیشفرض: true
- --enable-http-pipelining [true|false]
- فعالسازی
خطلولهسازی
(pipelining) در HTTP/1.1.
پیشفرض: false
نکته:
- --header=<HEADER>
- افزودن HEADER به سربرگ درخواست HTTP. میتوانید از این گزینه بهطور مکرر برای تعیین بیش از یک سربرگ استفاده کنید:
$ aria2c --header="X-A: b78" --header="X-B: 9J1" "http://host/file"
- --load-cookies=<FILE>
- بارگذاری
کوکیها از
FILE با
استفاده از
قالب
فایرفاکس ۳
(SQLite3)،
کرومیوم/گوگل
کروم (SQLite3) و
قالب
موزیلا/فایرفاکس(1.x/2.x)/نتاسکیپ.
نکته:
- --save-cookies=<FILE>
- ذخیره کوکیها در FILE با قالب موزیلا/فایرفاکس(1.x/2.x)/نتاسکیپ. اگر FILE از قبل وجود داشته باشد، بازنویسی میشود. کوکیهای نشست (Session Cookies) نیز ذخیره میشوند و زمان انقضای آنها 0 در نظر گرفته میشود. مقادیر ممکن: /path/to/file
- --use-head [true|false]
- استفاده از متد HEAD برای اولین درخواست به سرور HTTP. پیشفرض: false
- --no-want-digest-header [true|false]
- تعیین غیرفعال کردن سربرگ Want-Digest هنگام ارسال درخواستها. پیشفرض: false
- -U, --user-agent=<USER_AGENT>
- تنظیم عامل کاربر (User Agent) برای دانلودهای HTTP(S). پیشفرض: aria2/$VERSION، مقدار $VERSION با نسخه بسته جایگزین میشود.
گزینههای اختصاصی FTP/SFTP (FTP/SFTP Specific Options)
- --ftp-user=<USER>
- تنظیم نام کاربری FTP. این بر تمامی نشانیها اعمال میشود. پیشفرض: anonymous
- --ftp-passwd=<PASSWD>
- تنظیم گذرواژه FTP. این بر تمامی نشانیها اعمال میشود. اگر نام کاربری در نشانی درج شده باشد اما گذرواژه نباشد، aria2 تلاش میکند گذرواژه را از طریق netrc. بیابد. اگر گذرواژه در netrc. یافت شود، از آن استفاده میکند. در غیر این صورت، از گذرواژه مشخصشده در این گزینه استفاده خواهد شد. پیشفرض: ARIA2USER@
- -p, --ftp-pasv [true|false]
- استفاده از
حالت
غیرفعال (Passive)
در FTP. اگر false
داده شود،
از حالت
فعال (Active)
استفاده
خواهد شد.
پیشفرض: true
نکته:
- --ftp-proxy=<PROXY>
- استفاده از سرور پروکسی برای FTP. برای بازنویسی پروکسی تعریفشده قبلی، از "" استفاده کنید. همچنین گزینه --all-proxy را ببینید. این بر تمامی دانلودهای FTP اثر میگذارد. قالب PROXY بهصورت [http://][USER:PASSWORD@]HOST[:PORT] است.
- --ftp-proxy-passwd=<PASSWD>
- تنظیم گذرواژه برای گزینه --ftp-proxy.
- --ftp-proxy-user=<USER>
- تنظیم نام کاربری برای گزینه --ftp-proxy.
- --ftp-type=<TYPE>
- تنظیم نوع
انتقال FTP.
مقدار TYPE
میتواند
binary یا ascii
باشد.
پیشفرض: binary
نکته:
- --ftp-reuse-connection [true|false]
- استفاده مجدد از اتصال در FTP. پیشفرض: true
- --ssh-host-key-md=<TYPE>=<DIGEST>
- تنظیم جمع کنترلی (checksum) برای کلید عمومی میزبان SSH. مقدار TYPE نوع هش است. انواع هش پشتیبانیشده sha-1 یا md5 هستند. مقدار DIGEST خلاصه هگزادسیمال است. برای مثال: sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3. از این گزینه میتوان برای اعتبارسنجی کلید عمومی سرور هنگام استفاده از SFTP استفاده کرد. اگر این گزینه تنظیم نشود (که حالت پیشفرض است)، هیچ اعتبارسنجی انجام نمیگیرد.
گزینههای BitTorrent/Metalink (BitTorrent/Metalink Options)
- --select-file=<INDEX>...
- مشخص کردن
فایل برای
دانلود با
استفاده از
شناسه
(اندیس) آن.
میتوانید
شناسه فایل
را با
استفاده از
گزینه --show-files
بیابید.
میتوانید
چندین
شناسه را با
استفاده از
, مشخص
کنید،
مثلاً: 3,6.
همچنین
میتوانید
از - برای
مشخص کردن
یک بازه
استفاده
کنید: 1-5.
میتوان , و
- را با
یکدیگر به
کار برد: 1-5,8,9.
هنگامی که
همراه با
گزینه -M
استفاده
شود، شناسه
ممکن است
بسته به
پرسوجو
متغیر باشد
(گزینههای
--metalink-* را
ببینید).
نکته:
- -S, --show-files [true|false]
- چاپ فهرست فایلهای موجود در فایلهای ".torrent"، ".meta4" و ".metalink" و سپس خروج. در مورد فایلهای ".torrent"، اطلاعات بیشتر (infohash، طول قطعه و غیره) نیز چاپ خواهد شد.
گزینههای اختصاصی بیتتورنت (BitTorrent Specific Options)
- --bt-detach-seed-only [true|false]
- استثنا کردن دانلودهایی که صرفاً سید (seed) هستند هنگام شمارش دانلودهای فعال همزمان (گزینه -j را ببینید). این بدان معناست که اگر -j3 داده شود و این گزینه فعال باشد و ۳ دانلود فعال باشند و یکی از آنها وارد حالت سید شود، از شمارش دانلودهای فعال مستثنا میگردد (در نتیجه به ۲ تبدیل میشود) و دانلود بعدی که در صف منتظر است آغاز میشود. اما توجه داشته باشید که آیتم در حال سید همچنان در متد RPC به عنوان دانلود فعال شناخته میشود. پیشفرض: false
- --bt-enable-hook-after-hash-check [true|false]
- اجازه فراخوانی دستور هوک (hook) پس از بررسی هش (گزینه -V را ببینید) در دانلود بیتتورنت. بهطور پیشفرض، زمانی که بررسی هش با موفقیت انجام شود، دستور ارائهشده توسط --on-bt-download-complete اجرا میشود. برای غیرفعال کردن این رفتار، مقدار false را به این گزینه بدهید. پیشفرض: true
- --bt-enable-lpd [true|false]
- فعال کردن کشف همتای محلی (Local Peer Discovery). اگر فلگ خصوصی (private) در یک تورنت تنظیم شده باشد، aria2 حتی در صورت مشخص شدن true از این ویژگی برای آن دانلود استفاده نمیکند. پیشفرض: false
- --bt-exclude-tracker=<URI>[,...]
- فهرست جداشده با کاما از نشانیهای (URI) اعلام ترکر بیتتورنت جهت حذف. میتوانید از مقدار ویژه * استفاده کنید که با تمام نشانیها مطابقت دارد و در نتیجه تمام نشانیهای اعلام را حذف میکند. هنگام مشخص کردن * در خط فرمان شل، اسکیپ کردن یا قرار دادن آن در نقلقول را فراموش نکنید. همچنین گزینه --bt-tracker را ببینید.
- --bt-external-ip=<IPADDRESS>
- مشخص کردن آدرس IP خارجی برای استفاده در دانلود بیتتورنت و DHT. این آدرس ممکن است به ترکر بیتتورنت ارسال شود. برای DHT، این گزینه باید تنظیم شود تا گزارش دهد گره محلی در حال دانلود یک تورنت مشخص است. این امر برای استفاده از DHT در یک شبکه خصوصی حیاتی است. اگرچه این تابع external نامیده شده است، اما میتواند هر نوع آدرس IP را بپذیرد.
- --bt-force-encryption [true|false]
- رمزگذاری بار داده پیامهای بیتتورنت با arc4 را الزامی میکند. این یک شکل خلاصه از --bt-require-crypto --bt-min-crypto-level=arc4 است. این گزینه مقدار تنظیمشده برای آن گزینهها را تغییر نمیدهد. اگر true داده شود، دستتکانی سنتی بیتتورنت رد شده و تنها از دستتکانی مبهمسازی (Obfuscation) استفاده میشود و بار داده پیامها همیشه رمزگذاری میگردد. پیشفرض: false
- --bt-hash-check-seed [true|false]
- اگر true داده شود، پس از بررسی هش با استفاده از گزینه --check-integrity و کامل بودن فایل، به سید کردن فایل ادامه میدهد. اگر میخواهید فایل را بررسی کنید و تنها در صورت آسیبدیدگی یا ناقص بودن آن را دانلود نمایید، این گزینه را روی false تنظیم کنید. این گزینه تنها بر دانلود بیتتورنت تأثیر دارد. پیشفرض: true
- --bt-load-saved-metadata [true|false]
- قبل از دریافت متادیتای تورنت از DHT هنگام دانلود با لینک مگنت، ابتدا تلاش میکند فایل ذخیرهشده توسط گزینه --bt-save-metadata را بخواند. اگر موفقیتآمیز باشد، از دانلود متادیتا از DHT صرفنظر میشود. پیشفرض: false
- --bt-lpd-interface=<INTERFACE>
- استفاده از رابط مشخصشده برای کشف همتای محلی (LPD). اگر این گزینه مشخص نشود، رابط پیشفرض انتخاب میشود. میتوانید نام رابط و آدرس IP را مشخص کنید. مقادیر ممکن: interface, IP address
- --bt-max-open-files=<NUM>
- حداکثر تعداد فایلها برای باز شدن در دانلود چندفایلی بیتتورنت/متالینک را به صورت سراسری مشخص میکند. پیشفرض: 100
- --bt-max-peers=<NUM>
- حداکثر تعداد همتاها (peers) به ازای هر تورنت را تعیین میکند. مقدار 0 به معنای نامحدود است. همچنین گزینه --bt-request-peer-speed-limit را ببینید. پیشفرض: 55
- --bt-metadata-only [true|false]
- تنها متادیتا را دانلود میکند. فایل(های) توصیفشده در متادیتا دانلود نخواهند شد. این گزینه تنها زمانی تأثیر دارد که از نشانی مگنت بیتتورنت استفاده شود. همچنین گزینه --bt-save-metadata را ببینید. پیشفرض: false
- --bt-min-crypto-level=plain|arc4
- تنظیم حداقل سطح روش رمزگذاری. اگر چند روش رمزگذاری توسط یک همتا ارائه شود، aria2 پایینترین موردی را انتخاب میکند که سطح دادهشده را برآورده سازد. پیشفرض: plain
- --bt-prioritize-piece=head[=<SIZE>],tail[=<SIZE>]
- تلاش برای دانلود قطعات ابتدایی و انتهایی هر فایل در اولویت نخست. این امر برای پیشنمایش فایلها کاربرد دارد. این آرگومان میتواند شامل ۲ کلمه کلیدی باشد: head و tail. برای استفاده همزمان از هر دو، باید با کاما از هم جدا شوند. این کلمات کلیدی میتوانند یک پارامتر SIZE دریافت کنند. برای مثال، اگر head=<SIZE> مشخص شود، قطعات موجود در بازه SIZE بایت نخست از هر فایل اولویت بالاتری دریافت میکنند. tail=<SIZE> به معنای بازه SIZE بایت پایانی هر فایل است. مقدار SIZE میتواند شامل K یا M باشد (1K = 1024, 1M = 1024K). اگر SIZE مشخص نشود، از مقدار پیشفرض SIZE=1M استفاده میشود.
- --bt-remove-unselected-file [true|false]
- هنگامی که دانلود در بیتتورنت تکمیل شد، فایلهای انتخابنشده را حذف میکند. جهت انتخاب فایلها، از گزینه --select-file استفاده کنید. در صورت عدم استفاده از آن، فرض میشود که همه فایلها انتخاب شدهاند. لطفاً با احتیاط از این گزینه استفاده کنید زیرا این کار واقعاً فایلها را از دیسک شما پاک میکند. پیشفرض: false
- --bt-require-crypto [true|false]
- اگر true داده شود، aria2 اتصال با دستتکانی سنتی بیتتورنت (\19BitTorrent protocol) را نمیپذیرد و برقرار نمیکند. بنابراین aria2 همواره از دستتکانی مبهمسازی (Obfuscation) استفاده میکند. پیشفرض: false
- --bt-request-peer-speed-limit=<SPEED>
- چنانچه سرعت کلی دانلود تمام تورنتها کمتر از SPEED باشد، aria2 موقتاً تعداد همتاها را برای تلاش در جهت دستیابی به سرعت بیشتر افزایش میدهد. پیکربندی این گزینه با سرعت دانلود دلخواهتان میتواند در برخی موارد سرعت دانلود شما را بالا ببرد. میتوانید K یا M را اضافه کنید (1K = 1024, 1M = 1024K). پیشفرض: 50K
- --bt-save-metadata [true|false]
- ذخیره متادیتا به عنوان پرونده ".torrent". این گزینه تنها زمانی اعمال میشود که از نشانی مگنت بیتتورنت استفاده شود. نام فایل، رشته هگز هش اطلاعات (info hash) به همراه پسوند ".torrent" است. دایرکتوری ذخیرهسازی، همان دایرکتوری است که فایل دانلودشده در آن ذخیره میشود. اگر همان فایل از قبل وجود داشته باشد، متادیتا ذخیره نمیشود. همچنین گزینه --bt-metadata-only را ببینید. پیشفرض: false
- --bt-seed-unverified [true|false]
- سید کردن فایلهای از پیش دانلودشده بدون تأیید هش قطعات. پیشفرض: false
- --bt-stop-timeout=<SEC>
- توقف دانلود بیتتورنت در صورتی که سرعت دانلود برای SEC ثانیه متوالی برابر 0 باشد. اگر مقدار 0 داده شود، این ویژگی غیرفعال است. پیشفرض: 0
- --bt-tracker=<URI>[,...]
- فهرست جداشده با کاما از نشانیهای (URI) اعلام ترکر اضافی بیتتورنت. این نشانیها تحت تأثیر گزینه --bt-exclude-tracker قرار نمیگیرند زیرا پس از حذف نشانیهای گزینه --bt-exclude-tracker اضافه میشوند.
- --bt-tracker-connect-timeout=<SEC>
- تنظیم زمان انقضای اتصال بر حسب ثانیه برای برقراری اتصال با ترکر. پس از برقراری اتصال، این گزینه بیتأثیر بوده و در عوض از گزینه --bt-tracker-timeout استفاده میشود. پیشفرض: 60
- --bt-tracker-interval=<SEC>
- تنظیم بازه زمانی بر حسب ثانیه میان درخواستهای ترکر. این تنظیم مقدار بازه را کاملاً بازنویسی میکند و aria2 صرفاً از همین مقدار استفاده نموده و حداقل بازه و مقدار بازه موجود در پاسخ ترکر را نادیده میگیرد. اگر روی 0 تنظیم شود، aria2 بازه زمانی را بر اساس پاسخ ترکر و پیشرفت دانلود تعیین میکند. پیشفرض: 0
- --bt-tracker-timeout=<SEC>
- تنظیم زمان انقضا بر حسب ثانیه. پیشفرض: 60
- --dht-entry-point=<HOST>:<PORT>
- تنظیم میزبان و پورت به عنوان نقطه ورود به شبکه IPv4 DHT.
- --dht-entry-point6=<HOST>:<PORT>
- تنظیم میزبان و پورت به عنوان نقطه ورود به شبکه IPv6 DHT.
- --dht-file-path=<PATH>
- تغییر فایل جدول مسیریابی IPv4 DHT به PATH. پیشفرض: $HOME/.aria2/dht.dat در صورت وجود، در غیر این صورت $XDG_CACHE_HOME/aria2/dht.dat.
- --dht-file-path6=<PATH>
- تغییر فایل جدول مسیریابی IPv6 DHT به PATH. پیشفرض: $HOME/.aria2/dht6.dat در صورت وجود، در غیر این صورت $XDG_CACHE_HOME/aria2/dht6.dat.
- --dht-listen-addr6=<ADDR>
- مشخص کردن آدرس جهت مقیدسازی سوکت برای IPv6 DHT. این آدرس باید یک آدرس یونیکست سراسری IPv6 متعلق به میزبان باشد.
- --dht-listen-port=<PORT>...
- تنظیم پورت
شنود UDP مورد
استفاده
توسط DHT (IPv4، IPv6) و
ترکر UDP. چند
پورت را
میتوان با
استفاده از
, مشخص کرد،
برای مثال:
6881,6885. همچنین
میتوانید
از - برای
تعیین یک
بازه
استفاده
کنید: 6881-6999. , و
-
میتوانند
با یکدیگر
استفاده
شوند.
پیشفرض: 6881-6999
نکته:
- --dht-message-timeout=<SEC>
- تنظیم زمان انقضا بر حسب ثانیه. پیشفرض: 10
- --enable-dht [true|false]
- فعالسازی قابلیت IPv4 DHT. این گزینه همچنین پشتیبانی از ترکر UDP را فعال میکند. اگر فلگ خصوصی در یک تورنت تنظیم شده باشد، aria2 حتی در صورت مشخص شدن true از DHT برای آن دانلود استفاده نمیکند. پیشفرض: true
- --enable-dht6 [true|false]
- فعالسازی قابلیت IPv6 DHT. اگر فلگ خصوصی در یک تورنت تنظیم شده باشد، aria2 حتی در صورت مشخص شدن true برای آن دانلود از DHT استفاده نمیکند. از گزینه --dht-listen-port برای مشخص کردن شماره پورت جهت شنود استفاده کنید. همچنین گزینه --dht-listen-addr6 را ببینید.
- --enable-peer-exchange [true|false]
- فعالسازی افزونه تبادل همتا (Peer Exchange یا PEX). اگر فلگ خصوصی در یک تورنت تنظیم شده باشد، این ویژگی برای آن دانلود غیرفعال خواهد بود حتی اگر true داده شود. پیشفرض: true
- --follow-torrent=true|false|mem
- اگر true یا mem مشخص شود، هنگامی که فایلی با پسوند .torrent یا نوع محتوای application/x-bittorrent دانلود گردد، aria2 آن را به عنوان فایل تورنت پردازش کرده و فایلهای نامبرده در آن را دانلود میکند. اگر mem مشخص شود، فایل تورنت بر روی دیسک نوشته نشده و تنها در حافظه نگهداری میشود. اگر false مشخص شود، فایل .torrent بر روی دیسک دانلود میشود، اما به عنوان تورنت پردازش نشده و محتویات آن دانلود نخواهند شد. پیشفرض: true
- -O, --index-out=<INDEX>=<PATH>
- تنظیم مسیر فایل برای فایل با index=INDEX. میتوانید ایندکس فایل را با استفاده از گزینه --show-files پیدا کنید. PATH یک مسیر نسبی نسبت به مسیر مشخصشده در گزینه --dir است. میتوانید از این گزینه چندین بار استفاده کنید. با استفاده از این گزینه، میتوانید نام فایلهای خروجی دانلودهای بیتتورنت را مشخص کنید.
- --listen-port=<PORT>...
- تنظیم
شماره پورت
TCP برای
دانلودهای
بیتتورنت.
چندین پورت
را میتوان
با استفاده
از , مشخص
کرد، برای
مثال: 6881,6885.
همچنین
میتوانید
از - برای
تعیین یک
محدوده
استفاده
کنید: 6881-6999. , و
-
میتوانند
همراه
یکدیگر
استفاده
شوند: 6881-6889,6999.
پیشفرض: 6881-6999
نکته:
- --max-overall-upload-limit=<SPEED>
- تنظیم حداکثر سرعت آپلود کلی بر حسب بایت/ثانیه. مقدار 0 به معنای نامحدود است. میتوانید K یا M را اضافه کنید (1K = 1024, 1M = 1024K). جهت محدود کردن سرعت آپلود به ازای هر تورنت، از گزینه --max-upload-limit استفاده کنید. پیشفرض: 0
- -u, --max-upload-limit=<SPEED>
- تنظیم حداکثر سرعت آپلود به ازای هر تورنت بر حسب بایت/ثانیه. مقدار 0 به معنای نامحدود است. میتوانید K یا M را اضافه کنید (1K = 1024, 1M = 1024K). جهت محدود کردن سرعت آپلود کلی، از گزینه --max-overall-upload-limit استفاده کنید. پیشفرض: 0
- --peer-id-prefix=<PEER_ID_PREFIX>
- مشخص کردن
پیشوند
شناسه همتا
(peer ID). شناسه
همتا در
بیتتورنت
دارای طول
۲۰ بایت
است. اگر
بیش از ۲۰
بایت تعیین
شود، تنها
۲۰ بایت
نخست
استفاده
میشود. اگر
کمتر از ۲۰
بایت مشخص
شود،
دادههای
بایتی
تصادفی
افزوده
میشوند تا
طول آن به
۲۰ بایت
برسد.
پیشفرض: A2-$MAJOR-$MINOR-$PATCH-، که در آن $MAJOR، $MINOR و $PATCH به ترتیب با شماره نسخههای اصلی، فرعی و وصله جایگزین میشوند. برای مثال، نسخه 1.18.8 از aria2 دارای شناسه پیشوند A2-1-18-8- است.
- --peer-agent=<PEER_AGENT>
- مشخص کردن
رشته مورد
استفاده در
حین
دستتکانی
توسعهیافته
بیتتورنت
برای نسخه
کلاینت
همتا.
پیشفرض: aria2/$MAJOR.$MINOR.$PATCH، که در آن $MAJOR، $MINOR و $PATCH به ترتیب با شماره نسخههای اصلی، فرعی و وصله جایگزین میشوند. برای مثال، نسخه 1.18.8 از aria2 دارای عامل همتای aria2/1.18.8 است.
- --seed-ratio=<RATIO>
- مشخص کردن نسبت اشتراکگذاری. سید کردن تورنتهای تکمیلشده تا زمانی که نسبت اشتراکگذاری به RATIO برسد. اکیداً توصیه میشود در اینجا مقداری برابر یا بیشتر از 1.0 مشخص کنید. اگر قصد دارید صرفنظر از نسبت اشتراکگذاری به سید کردن ادامه دهید، مقدار 0.0 را تعیین کنید. چنانچه گزینه --seed-time به همراه این گزینه مشخص شده باشد، فرایند سید کردن زمانی به پایان میرسد که حداقل یکی از شرایط برآورده شود. پیشفرض: 1.0
- --seed-time=<MINUTES>
- مشخص کردن
زمان سید
کردن بر حسب
دقیقه
(کسری).
همچنین
گزینه --seed-ratio
را ببینید.
نکته:
- -T, --torrent-file=<TORRENT_FILE>
- مسیر پرونده ".torrent". نیازی به استفاده الزامی از این گزینه نیست چرا که میتوانید فایلهای ".torrent" را بدون --torrent-file نیز مشخص نمایید.
گزینههای اختصاصی متالینک (Metalink Specific Options)
- --follow-metalink=true|false|mem
- اگر true یا mem مشخص شود، زمانی که فایلی با پسوند .meta4 یا .metalink یا با نوع محتوای application/metalink4+xml یا application/metalink+xml دانلود گردد، aria2 آن را به عنوان یک فایل متالینک پردازش کرده و فایلهای ذکرشده در آن را دانلود میکند. اگر mem مشخص شود، فایل متالینک بر روی دیسک نوشته نشده و تنها در حافظه نگهداری میشود. اگر false مشخص شود، فایل .metalink بر روی دیسک دانلود میشود، اما به عنوان فایل متالینک پردازش نشده و محتویات آن دانلود نخواهد شد. پیشفرض: true
- --metalink-base-uri=<URI>
- مشخص کردن نشانی پایه (URI پایه) برای حل نشانیهای نسبی در عناصر metalink:url و metalink:metaurl درون یک فایل متالینک ذخیرهشده بر روی دیسک محلی. اگر نشانی به یک دایرکتوری اشاره داشته باشد، نشانی باید با / پایان یابد.
- -M, --metalink-file=<METALINK_FILE>
- مسیر فایل به فایلهای ".meta4" و ".metalink". هنگام مشخص شدن -، ورودی را از stdin میخواند. نیازی به استفاده الزامی از این گزینه نیست زیرا میتوانید فایلهای ".metalink" را بدون --metalink-file نیز مشخص نمایید.
- --metalink-language=<LANGUAGE>
- زبان فایل مورد نظر برای دانلود.
- --metalink-location=<LOCATION>[,...]
- موقعیت مکانی سرور ترجیحی. فهرست جداشده با کاما از موقعیتها پذیرفته میشود، برای مثال jp,us.
- --metalink-os=<OS>
- سیستمعامل فایل مورد نظر برای دانلود.
- --metalink-version=<VERSION>
- نسخه فایل مورد نظر برای دانلود.
- --metalink-preferred-protocol=<PROTO>
- مشخص کردن پروتکل ترجیحی. مقادیر مجاز عبارتند از http، https، ftp و none. برای غیرفعال کردن این ویژگی، مقدار none را مشخص نمایید. پیشفرض: none
- --metalink-enable-unique-protocol [true|false]
- اگر true داده شود و چند پروتکل برای یک آینه (mirror) در یک فایل متالینک موجود باشد، aria2 از یکی از آنها استفاده میکند. از گزینه --metalink-preferred-protocol برای مشخص کردن ترجیح پروتکل استفاده نمایید. پیشفرض: true
گزینههای آرپیسی (RPC Options)
- --enable-rpc [true|false]
- فعالسازی سرور JSON-RPC/XML-RPC. اکیداً توصیه میشود که با استفاده از گزینه --rpc-secret یک توکن محرمانه برای احراز هویت تنظیم کنید. همچنین گزینه --rpc-listen-port را ببینید. پیشفرض: false
- --pause [true|false]
- مکث دانلود پس از افزوده شدن. این گزینه تنها زمانی مؤثر است که مقدار --enable-rpc=true داده شده باشد. پیشفرض: false
- --pause-metadata [true|false]
- مکث دانلودهای ایجادشده در نتیجه دانلود متادیتا. در aria2 ۳ نوع دانلود متادیتا وجود دارد: (۱) دانلود فایل .torrent، (۲) دانلود متادیتای تورنت با استفاده از لینک مگنت، (۳) دانلود فایل متالینک. این دانلودهای متادیتا، دانلودهایی را بر اساس متادیتای خود ایجاد خواهند کرد. این گزینه این دانلودهای متوالی را به حالت مکث درمیآورد. این گزینه تنها زمانی مؤثر است که مقدار --enable-rpc=true داده شده باشد. پیشفرض: false
- --rpc-allow-origin-all [true|false]
- افزودن فیلد سرایند (header) Access-Control-Allow-Origin با مقدار * به پاسخ RPC. پیشفرض: false
- --rpc-certificate=<FILE>
- استفاده از
گواهی
موجود در FILE
برای سرور RPC.
این گواهی
باید یا در
قالب PKCS12 (.p12, .pfx)
باشد یا در
قالب PEM.
فایلهای PKCS12 باید شامل گواهی، یک کلید و به صورت اختیاری زنجیرهای از گواهیهای اضافی باشند. تنها فایلهای PKCS12 دارای گذرواژه واردسازی (import password) خالی قابل باز شدن هستند!
هنگام استفاده از PEM، باید کلید خصوصی را نیز از طریق --rpc-private-key مشخص کنید. برای فعالسازی رمزگذاری از گزینه --rpc-secure استفاده کنید.
نکته:
نکته:
- --rpc-listen-all [true|false]
- شنود درخواستهای ورودی JSON-RPC/XML-RPC بر روی تمامی رابطهای شبکه. اگر مقدار false داده شود، تنها بر روی رابط لوپبک محلی شنود میکند. پیشفرض: false
- --rpc-listen-port=<PORT>
- مشخص کردن شماره پورت برای شنود سرور JSON-RPC/XML-RPC. مقادیر ممکن: 1024 -65535 پیشفرض: 6800
- --rpc-max-request-size=<SIZE>
- تنظیم حداکثر اندازه درخواست JSON-RPC/XML-RPC. اگر aria2 تشخیص دهد که درخواست بیش از SIZE بایت است، اتصال را قطع میکند. پیشفرض: 2M
- --rpc-passwd=<PASSWD>
- تنظیم
گذرواژه JSON-RPC/XML-RPC.
هشدار:
- --rpc-private-key=<FILE>
- استفاده از کلید خصوصی موجود در FILE برای سرور RPC. کلید خصوصی باید رمزگشایی شده و در قالب PEM باشد. از گزینه --rpc-secure برای فعالسازی رمزگذاری استفاده نمایید. همچنین گزینه --rpc-certificate را ببینید.
- --rpc-save-upload-metadata [true|false]
- ذخیره متادیتای آپلودشده تورنت یا متالینک در دایرکتوری مشخصشده توسط گزینه --dir. نام فایل متشکل از رشته هگز هش SHA-1 متادیتا به همراه پسوند است. برای تورنت، پسوند '.torrent' است. برای متالینک، این پسوند '.meta4' است. اگر مقدار false به این گزینه داده شود، دانلودهای اضافهشده توسط aria2.addTorrent() یا aria2.addMetalink() توسط گزینه --save-session ذخیره نخواهند شد. پیشفرض: true
- --rpc-secret=<TOKEN>
- تنظیم توکن محرمانه احراز هویت RPC. بخش RPC authorization secret token را بخوانید تا بدانید مقدار این گزینه چگونه استفاده میشود.
- --rpc-secure [true|false]
- انتقال دادههای RPC توسط SSL/TLS رمزگذاری خواهد شد. کلاینتهای RPC باید از طرحواره https جهت دسترسی به سرور استفاده کنند. برای کلاینتهای WebSocket، از طرحواره wss استفاده نمایید. از گزینههای --rpc-certificate و --rpc-private-key برای مشخص کردن گواهی و کلید خصوصی سرور استفاده کنید.
- --rpc-user=<USER>
- تنظیم
کاربر JSON-RPC/XML-RPC.
هشدار:
گزینههای پیشرفته (Advanced Options)
- --allow-overwrite [true|false]
- اگر فایل کنترلی متناظر وجود نداشته باشد، دانلود را از ابتدا آغاز میکند. همچنین گزینه --auto-file-renaming را مشاهده کنید. پیشفرض: false
- --allow-piece-length-change [true|false]
- در صورت تعیین false، چنانچه اندازه قطعه با آنچه در فایل کنترلی ثبت شده متفاوت باشد، aria2 دانلود را لغو میکند. در صورت تعیین true، میتوانید ادامه دهید اما مقداری از پیشرفت دانلود از دست خواهد رفت. پیشفرض: false
- --always-resume [true|false]
- همیشه دانلود را ادامه میدهد. اگر مقدار true داده شود، aria2 همواره تلاش میکند دانلود را ادامه دهد و در صورتی که ادامه دانلود ممکن نباشد، دانلود را لغو میکند. اگر مقدار false داده شود، هنگامی که همه نشانیهای (URI) ارائهشده از ادامه دانلود پشتیبانی نکنند یا aria2 با N نشانی مواجه شود که از ادامه دانلود پشتیبانی نمیکنند (N مقداری است که با استفاده از گزینه --max-resume-failure-tries تعیین میشود)، aria2 فایل را از ابتدا دانلود میکند. گزینه --max-resume-failure-tries را ببینید. پیشفرض: true
- --async-dns [true|false]
- فعالسازی DNS ناهمگام (Asynchronous DNS). پیشفرض: true
- --async-dns-server=<IPADDRESS>[,...]
- فهرستی از آدرسهای کارساز DNS جداشده با کاما که در تحلیلگر DNS ناهمگام استفاده میشود. معمولاً تحلیلگر DNS ناهمگام آدرسهای سرور DNS را از /etc/resolv.conf میخواند. هنگامی که از این گزینه استفاده شود، به جای موارد موجود در /etc/resolv.conf از سرورهای DNS مشخصشده در این گزینه استفاده میکند. میتوانید هم آدرس IPv4 و هم IPv6 را مشخص کنید. این گزینه زمانی مفید است که سیستم فاقد /etc/resolv.conf باشد و کاربر نیز مجوز لازم برای ایجاد آن را نداشته باشد.
- --auto-file-renaming [true|false]
- تغییر نام فایل در صورتی که فایلی با همان نام از پیش وجود داشته باشد. این گزینه فقط در دانلودهای HTTP(S)/FTP عمل میکند. نام جدید فایل دارای یک نقطه و یک عدد (۱..۹۹۹۹) خواهد بود که پس از نام و پیش از پسوند فایل (در صورت وجود) اضافه میشود. پیشفرض: true
- --auto-save-interval=<SEC>
- ذخیره یک فایل کنترلی (*.aria2) در هر SEC ثانیه. اگر مقدار 0 داده شود، فایل کنترلی در حین دانلود ذخیره نمیشود. صرفنظر از این مقدار، aria2 هنگام توقف خود فایل کنترلی را ذخیره میکند. مقادیر مجاز بین 0 تا 600 است. پیشفرض: 60
- --conditional-get [true|false]
- دانلود فایل تنها زمانی که فایل محلی قدیمیتر از فایل سرور دوردست باشد. این قابلیت تنها در دانلودهای HTTP(S) کار میکند. اگر اندازه فایل در متالینک مشخص شده باشد کار نخواهد کرد. همچنین هدر Content-Disposition را نادیده میگیرد. در صورت وجود فایل کنترلی، این گزینه نادیده گرفته خواهد شد. این تابع از هدر If-Modified-Since برای دریافت مشروط فایل جدیدتر استفاده میکند. هنگام دریافت زمان تغییر فایل محلی، از نام فایل ارائهشده توسط کاربر (گزینه --out را ببینید) یا بخش نام فایل در نشانی (URI) در صورتی که --out مشخص نشده باشد، استفاده میشود. برای رونویسی فایل موجود، گزینه --allow-overwrite الزامی است. پیشفرض: false
- --conf-path=<PATH>
- تغییر مسیر فایل پیکربندی به PATH. پیشفرض: $HOME/.aria2/aria2.conf در صورت وجود، در غیر این صورت $XDG_CONFIG_HOME/aria2/aria2.conf.
- --console-log-level=<LEVEL>
- تنظیم سطح گزارش وقایع (لاگ) برای نمایش در کنسول. LEVEL یکی از مقادیر debug، info، notice، warn یا error است. پیشفرض: notice
- --content-disposition-default-utf8 [true|false]
- پردازش رشته نقلقولشده در هدر Content-Disposition با قالب UTF-8 به جای ISO-8859-1، برای نمونه پارامتر filename، اما نه نسخه گسترشیافته filename*. پیشفرض: false
- -D, --daemon [true|false]
- اجرا به عنوان دیمن (پسزمینه). دایرکتوری کاری جاری به / تغییر مییابد و ورودی استاندارد، خروجی استاندارد و خطای استاندارد به /dev/null هدایت میشوند. پیشفرض: false
- --deferred-input [true|false]
- در صورت
تعیین true،
برنامه aria2
تمام
نشانیها (URI)
و گزینهها
را در
ابتدای
اجرا از
فایل
مشخصشده
با گزینه
--input-file
نمیخواند،
بلکه بعداً
در زمان
نیاز آنها
را یکییکی
میخواند.
اگر فایل
ورودی شامل
نشانیهای
متعددی
برای
دانلود
باشد، این
کار ممکن
است مصرف
حافظه را
کاهش دهد.
در صورت
تعیین false،
برنامه aria2
تمام
نشانیها و
گزینهها
را در
ابتدای
راهاندازی
میخواند.
پیشفرض: false
هشدار:
- --disable-ipv6 [true|false]
- غیرفعال کردن IPv6. این گزینه زمانی مفید است که ناچار به استفاده از یک DNS معیوب هستید و میخواهید از پرسوجوی فوقالعاده کند رکوردهای AAAA اجتناب کنید. پیشفرض: false
- --disk-cache=<SIZE>
- فعالسازی حافظه پنهان دیسک (Disk cache). اگر مقدار SIZE برابر با 0 باشد، حافظه پنهان دیسک غیرفعال میشود. این قابلیت دادههای دانلودشده را در حافظه رم نگهداری میکند که حداکثر تا SIZE بایت افزایش مییابد. فضای حافظه پنهان برای هر نمونه از aria2 ایجاد شده و بین همه دانلودها به اشتراک گذاشته میشود. یکی از مزایای حافظه پنهان دیسک کاهش ورودی/خروجی (I/O) دیسک است زیرا دادهها در واحدهای بزرگتر نوشته شده و بر اساس آفست فایل بازآرایی میشوند. چنانچه بررسی هش در میان باشد و دادهها در حافظه کش شده باشند، دیگر نیازی به خواندن مجدد آنها از دیسک نداریم. مقدار SIZE میتواند شامل K یا M باشد (1K = 1024, 1M = 1024K). پیشفرض: 16M
- --download-result=<OPT>
- این گزینه نحوه قالببندی نتایج دانلود (Download Results) را تغییر میدهد. اگر مقدار OPT برابر با default باشد، شناسه GID، وضعیت، میانگین سرعت دانلود و مسیر/نشانی چاپ میشوند. اگر چندین فایل در میان باشد، مسیر/نشانی اولین فایل درخواستشده چاپ شده و باقی موارد حذف میشوند. اگر مقدار OPT برابر با full باشد، شناسه GID، وضعیت، میانگین سرعت دانلود، درصد پیشرفت و مسیر/نشانی چاپ میشوند. درصد پیشرفت و مسیر/نشانی برای هر فایل درخواستشده در یک سطر جداگانه نمایش مییابند. اگر OPT برابر با hide باشد، نتایج دانلود پنهان خواهد شد. پیشفرض: default
- --dscp=<DSCP>
- تنظیم مقدار DSCP در بستههای IP خروجی مربوط به ترافیک بیتتورنت برای کیفیت خدمات (QoS). این پارامتر فقط بیتهای DSCP را در فیلد TOS بستههای IP تنظیم میکند، نه کل فیلد را. اگر مقادیر را از /usr/include/netinet/ip.h استخراج میکنید، آنها را بر ۴ تقسیم کنید (در غیر این صورت مقادیر نادرست خواهند بود، مثلاً کلاس CS1 شما به CS4 تبدیل میشود). اگر مقادیر پرکاربرد را از RFC، مستندات سازندگان تجهیزات شبکه، ویکیپدیا یا هر منبع دیگری برمیدارید، از آنها همانگونه که هستند استفاده نمایید.
- --rlimit-nofile=<NUM>
- تنظیم حد نرم (Soft Limit) برای توصیفکنندههای باز فایل. این گزینه تنها در شرایط زیر تأثیرگذار خواهد بود:
این معادل تنظیم nofile از طریق ulimit است، با این تفاوت که هرگز حد را کاهش نمیدهد.
این گزینه فقط در سیستمهایی که از API تابع rlimit پشتیبانی میکنند در دسترس است.
- --enable-color [true|false]
- فعالسازی خروجی رنگی در ترمینال. پیشفرض: true
- --enable-mmap [true|false]
- نگاشت
فایلها در
حافظه (mmap). در
صورتی که
فضای فایل
از پیش
تخصیص
نیافته
باشد، ممکن
است این
گزینه کار
نکند. گزینه
--file-allocation را
مشاهده
کنید.
پیشفرض: false
- --event-poll=<POLL>
- تعیین روش نظرسنجی رویدادها (Event Polling). مقادیر ممکن عبارتند از epoll، kqueue، port، poll و select. هر یک از روشهای epoll، kqueue، port و poll در صورتی که سیستم از آن پشتیبانی کند در دسترس است. روش epoll در لینوکسهای مدرن در دسترس است. kqueue در سیستمهای گوناگون *BSD از جمله Mac OS X در دسترس است. port در Open Solaris در دسترس است. مقدار پیشفرض بسته به سیستم مورد استفاده شما ممکن است متغیر باشد.
- --file-allocation=<METHOD>
- تعیین روش
تخصیص فضای
فایل. روش none
فضای فایل
را از پیش
تخصیص
نمیدهد. prealloc
فضای فایل
را پیش از
آغاز
دانلود از
پیش تخصیص
میدهد. این
کار بسته به
اندازه
فایل ممکن
است مقداری
زمان ببرد.
اگر از
سیستمفایلهای
جدیدتر
مانند ext4 (با
پشتیبانی
از extents)، btrfs، xfs یا NTFS
(فقط در
بیلد MinGW)
استفاده
میکنید،
falloc بهترین
گزینه
شماست. این
روش فضای
فایلهای
حجیم (چند
گیگابایت)
را تقریباً
بیدرنگ
تخصیص
میدهد. از
falloc در
سیستمفایلهای
قدیمیتر
مانند ext3 و FAT32
استفاده
نکنید چرا
که تقریباً
همانند prealloc
زمان
میبرد و تا
زمان اتمام
تخصیص،
برنامه aria2 را
بهطور
کامل متوقف
(بلاک)
میکند. در
صورتی که
سیستم شما
فاقد تابع
posix_fallocate(3) باشد
ممکن است falloc
در دسترس
نباشد. روش
trunc از
فراخوانی
سیستمی ftruncate(2)
یا معادل
مخصوص
پلتفرم آن
برای بریدن
یا گسترش
طول فایل به
اندازه
مشخص
استفاده
میکند.
مقادیر ممکن: none، prealloc، trunc، falloc پیشفرض: prealloc
هشدار:
نکته:
- --force-save [true|false]
- ذخیره وضعیت دانلود با گزینه --save-session حتی اگر دانلود تکمیل یا حذف شده باشد. این گزینه در آن شرایط فایل کنترلی را نیز ذخیره میکند. این قابلیت ممکن است برای ذخیره اشتراکگذاری (Seeding) بیتتورنت که به عنوان وضعیت تکمیلشده شناخته میشود مفید باشد. پیشفرض: false
- --save-not-found [true|false]
- ذخیره وضعیت دانلود با گزینه --save-session حتی اگر فایل در سرور یافت نشده باشد. این گزینه در آن شرایط فایل کنترلی را نیز ذخیره میکند. پیشفرض: true
- --gid=<GID>
- تنظیم دستی شناسه GID. برنامه aria2 هر دانلود را با شناسهای به نام GID مشخص میکند. مقدار GID باید یک رشته هگزادسیمال ۱۶ کاراکتری باشد، بنابراین [0-9a-fA-F] مجاز بوده و صفرهای اول نباید حذف شوند. مقدار GID تماماً صفر رزرو شده است و نباید استفاده شود. مقدار GID باید یکتا باشد، در غیر این صورت خطا گزارش شده و دانلود اضافه نمیشود. این گزینه هنگام بازیابی نشستهای ذخیرهشده با گزینه --save-session مفید است. در صورت عدم استفاده از این گزینه، یک GID جدید توسط aria2 تولید میشود.
- --hash-check-only [true|false]
- در صورت تعیین true، پس از بررسی هش با استفاده از گزینه --check-integrity، صرفنظر از اینکه دانلود تکمیل شده باشد یا خیر، دانلود لغو میشود. پیشفرض: false
- --human-readable [true|false]
- چاپ اندازهها و سرعتها با قالبی خوانا برای انسان (مانند 1.2Ki, 3.4Mi) در خروجی کنسول. پیشفرض: true
- --interface=<INTERFACE>
- اتصال
سوکتها به
واسط شبکه
(اینترفیس)
دادهشده.
میتوانید
نام واسط،
آدرس IP و نام
میزبان را
مشخص کنید.
مقادیر
ممکن: interface, IP address, host name
نکته:
- --keep-unfinished-download-result [true|false]
- نگهداری نتایج دانلودهای ناتمام حتی اگر انجام این کار از حد --max-download-result فراتر رود. این گزینه زمانی مفید است که بخواهید تمام دانلودهای ناتمام در فایل نشست ذخیره شوند (گزینه --save-session را ببینید). لطفاً توجه داشته باشید که هیچ حد بالایی برای تعداد نتایج دانلودهای ناتمام نگهداریشده وجود ندارد. اگر این وضعیت مطلوب نیست، این گزینه را خاموش کنید. پیشفرض: true
- --max-download-result=<NUM>
- تنظیم حداکثر تعداد نتایج دانلودی که در حافظه نگهداری میشوند. نتایج دانلود شامل دانلودهای تکمیلشده/خطادار/حذفشده هستند. نتایج دانلود در یک صف FIFO نگهداری میشوند و حداکثر میتوانند NUM نتیجه دانلود را در خود ذخیره کنند. زمانی که صف پر باشد و نتیجه دانلود جدیدی ایجاد شود، قدیمیترین نتیجه دانلود از ابتدای صف حذف شده و مورد جدید به انتهای آن افزوده میشود. تنظیم عددی بزرگ برای این گزینه ممکن است پس از هزاران دانلود به مصرف بالای حافظه منجر شود. مشخص کردن مقدار 0 به این معنی است که هیچ نتیجه دانلودی نگهداری نمیشود. توجه داشته باشید که دانلودهای ناتمام صرفنظر از مقدار این گزینه در حافظه حفظ میشوند. گزینه --keep-unfinished-download-result را ببینید. پیشفرض: 1000
- --max-mmap-limit=<SIZE>
- تنظیم حداکثر اندازه فایل برای فعالسازی نگاشت حافظه mmap (گزینه --enable-mmap را ببینید). اندازه فایل با مجموع تمامی فایلهای موجود در یک دانلود تعیین میشود. برای مثال، اگر یک دانلود شامل ۵ فایل باشد، اندازه فایل برابر با حجم کل آن فایلها خواهد بود. اگر اندازه فایل اکیداً بزرگتر از مقدار مشخصشده در این گزینه باشد، mmap غیرفعال خواهد شد. پیشفرض: 9223372036854775807
- --max-resume-failure-tries=<N>
- هنگام استفاده همراه با --always-resume=false، برنامه aria2 زمانی که N نشانی (URI) بدون پشتیبانی از ادامه دانلود را تشخیص دهد، دانلود فایل را از ابتدا آغاز میکند. اگر مقدار N برابر با 0 باشد، aria2 تنها زمانی فایل را از ابتدا دانلود میکند که تمامی نشانیهای ارائهشده از ادامه دانلود پشتیبانی نکنند. گزینه --always-resume را ببینید. پیشفرض: 0
- --min-tls-version=<VERSION>
- مشخص کردن حداقل نسخه SSL/TLS مجاز جهت فعالسازی. مقادیر ممکن: TLSv1.1, TLSv1.2, TLSv1.3 پیشفرض: TLSv1.2
- --multiple-interface=<INTERFACES>
- فهرستی از واسطهای شبکه جداشده با کاما جهت اتصال سوکتها به آنها. درخواستها بین این واسطها تقسیم میشوند تا تجمیع پیوند (Link aggregation) حاصل شود. میتوانید نام واسط، آدرس IP و نام میزبان را مشخص کنید. اگر گزینه --interface استفاده شده باشد، این گزینه نادیده گرفته خواهد شد. مقادیر ممکن: interface, IP address, hostname
- --log-level=<LEVEL>
- تنظیم سطح ثبت وقایع برای خروجی. مقدار LEVEL یکی از مقادیر debug، info، notice، warn یا error است. پیشفرض: debug
- --on-bt-download-complete=<COMMAND>
- در بیتتورنت، دستوری که در --on-download-complete مشخص میشود پس از تکمیل دانلود و پایان سیدینگ (اشتراکگذاری) فراخوانی میگردد. از سوی دیگر، این گزینه دستوری را مشخص میکند که پس از تکمیل دانلود اما پیش از سیدینگ اجرا شود. برای جزئیات بیشتر درباره COMMAND بخش قلاب رویداد (Event Hook) را ببینید. مقادیر ممکن: /path/to/command
- --on-download-complete=<COMMAND>
- تنظیم دستوری که پس از تکمیل دانلود اجرا شود. برای جزئیات بیشتر درباره COMMAND بخش قلاب رویداد (Event Hook) را ببینید. همچنین گزینه --on-download-stop را مشاهده کنید. مقادیر ممکن: /path/to/command
- --on-download-error=<COMMAND>
- تنظیم دستوری که پس از متوقف شدن دانلود به دلیل خطا اجرا شود. برای جزئیات بیشتر درباره COMMAND بخش قلاب رویداد (Event Hook) را ببینید. همچنین گزینه --on-download-stop را مشاهده کنید. مقادیر ممکن: /path/to/command
- --on-download-pause=<COMMAND>
- تنظیم دستوری که پس از متوقف شدن موقت (مکث) دانلود اجرا شود. برای جزئیات بیشتر درباره COMMAND بخش قلاب رویداد (Event Hook) را ببینید. مقادیر ممکن: /path/to/command
- --on-download-start=<COMMAND>
- تنظیم دستوری که پس از شروع دانلود اجرا شود. برای جزئیات بیشتر درباره COMMAND بخش قلاب رویداد (Event Hook) را ببینید. مقادیر ممکن: /path/to/command
- --on-download-stop=<COMMAND>
- تنظیم دستوری که پس از توقف دانلود اجرا شود. میتوانید با استفاده از گزینههای --on-download-complete و --on-download-error دستور قابل اجرا برای نتیجه دانلودی خاص را لغو (override) کنید. در صورت مشخص شدن آنها، دستور تعیینشده در این گزینه اجرا نخواهد شد. برای جزئیات بیشتر درباره COMMAND بخش قلاب رویداد (Event Hook) را ببینید. مقادیر ممکن: /path/to/command
- --optimize-concurrent-downloads [true|false|<A>:<B>]
- بهینهسازی تعداد دانلودهای همزمان با توجه به پهنای باند در دسترس. برنامه aria2 از سرعت دانلود مشاهدهشده در دانلودهای قبلی برای تطبیق تعداد دانلودهای موازی بر اساس رابطه N = A + B Log10(speed in Mbps) استفاده میکند. ضرایب A و B را میتوان در آرگومانهای این گزینه با جدا کردن A و B توسط دونقطه شخصیسازی کرد. مقادیر پیشفرض (A=5, B=25) معمولاً منجر به ۵ دانلود موازی در شبکههای 1Mbps و بیش از ۵۰ دانلود در شبکههای 100Mbps میشود. تعداد دانلودهای موازی همواره کمتر از حداکثر تعیینشده در پارامتر --max-concurrent-downloads باقی خواهد ماند. پیشفرض: false
- --piece-length=<LENGTH>
- تنظیم طول
قطعه برای
دانلودهای
HTTP/FTP. این مرزی
است که aria2 بر
اساس آن یک
فایل را
تقسیم
میکند.
تمامی
تقسیمها
در مضاربی
از این طول
رخ میدهند.
این گزینه
در
دانلودهای
بیتتورنت
نادیده
گرفته
میشود.
همچنین در
صورتی که
فایل
متالینک
حاوی هش
قطعات
باشد،
نادیده
گرفته
خواهد شد.
پیشفرض: 1M
نکته:
- --show-console-readout [true|false]
- نمایش خروجی وضعیت در کنسول. پیشفرض: true
- --stderr [true|false]
- هدایت تمام خروجیهای کنسول که در غیر این صورت در stdout چاپ میشدند به خطای استاندارد (stderr). پیشفرض: false
- --summary-interval=<SEC>
- تنظیم فاصله زمانی به ثانیه برای چاپ خلاصه پیشرفت دانلود. تنظیم مقدار 0 مانع چاپ این خروجی میشود. پیشفرض: 60
- -Z, --force-sequential [true|false]
- دریافت ترتیبی نشانیهای (URI) موجود در خط فرمان و دانلود هر نشانی در یک نشست جداگانه، همانند ابزارهای متداول دانلود خط فرمان. پیشفرض: false
- --max-overall-download-limit=<SPEED>
- تنظیم حداکثر سرعت کلی دانلود بر حسب بایت در ثانیه. مقدار 0 به معنای نامحدود است. میتوانید K یا M را اضافه کنید (1K = 1024, 1M = 1024K). برای محدود کردن سرعت دانلود به ازای هر دانلود، از گزینه --max-download-limit استفاده کنید. پیشفرض: 0
- --max-download-limit=<SPEED>
- تنظیم حداکثر سرعت دانلود به ازای هر دانلود بر حسب بایت در ثانیه. مقدار 0 به معنای نامحدود است. میتوانید K یا M را اضافه کنید (1K = 1024, 1M = 1024K). برای محدود کردن سرعت کلی دانلود، از گزینه --max-overall-download-limit استفاده کنید. پیشفرض: 0
- --no-conf [true|false]
- غیرفعال کردن بارگذاری فایل aria2.conf.
- --no-file-allocation-limit=<SIZE>
- هیچ تخصیص فضایی برای فایلهایی که اندازه آنها کوچکتر از SIZE باشد انجام نمیشود. میتوانید K یا M را اضافه کنید (1K = 1024, 1M = 1024K). پیشفرض: 5M
- -P, --parameterized-uri [true|false]
- فعالسازی پشتیبانی از نشانیهای (URI) پارامتری. میتوانید مجموعهای از بخشها را مشخص کنید: http://{sv1,sv2,sv3}/foo.iso. همچنین میتوانید دنبالههای عددی با شمارنده گام مشخص کنید: http://host/image[000-100:2].img. شمارنده گام میتواند حذف شود. اگر همه نشانیها به یک فایل اشاره نکنند، همانند مثال دوم در بالا، گزینه -Z مورد نیاز است. پیشفرض: false
- -q, --quiet [true|false]
- حالت بیصدا برای aria2 (بدون خروجی کنسول). پیشفرض: false
- --realtime-chunk-checksum [true|false]
- اعتبارسنجی تکههای داده با محاسبه جمع کنترلی (checksum) در حین دانلود فایل، در صورتی که جمع کنترلی تکهها ارائه شده باشد. پیشفرض: true
- --remove-control-file [true|false]
- حذف فایل کنترلی پیش از دانلود. در صورت استفاده همراه با --allow-overwrite=true، دانلود همواره از ابتدا آغاز میشود. این گزینه برای کاربرانی که پشت سرور پروکسی هستند و پروکسی امکان ادامه دانلود را غیرفعال کرده است مفید خواهد بود.
- --save-session=<FILE>
- ذخیره
دانلودهای
خطادار/ناتمام
در FILE در
هنگام خروج.
میتوانید
این فایل
خروجی را
هنگام
راهاندازی
مجدد با
گزینه --input-file
به aria2c ارسال
کنید. اگر
تمایل
دارید
خروجی
فشردهسازی
شود (gzip)،
پسوند gz. را
به انتهای
نام فایل
اضافه کنید.
لطفاً توجه
داشته
باشید
دانلودهایی
که با
متدهای RPC با
نامهای
aria2.addTorrent() و aria2.addMetalink()
اضافه
شدهاند و
فرادادههای
آنها
نتوانسته
به عنوان
فایل ذخیره
شود، ذخیره
نخواهند شد.
دانلودهای
حذفشده با
استفاده از
aria2.remove() و aria2.forceRemove()
نیز ذخیره
نمیشوند.
شناسه GID نیز
به همراه gid
ذخیره
میشود،
اما
محدودیتهایی
وجود دارد
که در ادامه
آمده است.
نکته:
- نشانی مگنت (magnet URI)، و به دنبال آن دانلود تورنت
- شناسه GID دانلود فراداده بیتتورنت ذخیره میشود.
- نشانی به فایل تورنت، و به دنبال آن دانلود تورنت
- شناسه GID دانلود فایل تورنت ذخیره میشود.
- نشانی به فایل متالینک، و به دنبال آن دانلود فایلهای شرحدادهشده در فایل متالینک
- شناسه GID دانلود فایل متالینک ذخیره میشود.
- فایل تورنت محلی
- شناسه GID دانلود تورنت ذخیره میشود.
- فایل متالینک محلی
- هیچ GID معناداری ذخیره نمیشود.
- --save-session-interval=<SEC>
- ذخیره دانلودهای خطادار/ناتمام در فایل مشخصشده توسط گزینه --save-session در هر SEC ثانیه. اگر مقدار 0 داده شود، فایل تنها زمانی که aria2 خارج شود ذخیره خواهد شد. پیشفرض: 0
- --socket-recv-buffer-size=<SIZE>
- تنظیم حداکثر بافر دریافت سوکت بر حسب بایت. مشخص کردن 0 این گزینه را غیرفعال میکند. این مقدار با استفاده از گزینه سوکت SO_RCVBUF همراه با فراخوانی تابع setsockopt() روی توصیفکننده فایل سوکت تنظیم میشود. پیشفرض: 0
- --stop=<SEC>
- توقف برنامه پس از سپری شدن SEC ثانیه. اگر مقدار 0 داده شود، این قابلیت غیرفعال است. پیشفرض: 0
- --stop-with-process=<PID>
- توقف برنامه هنگامی که فرآیند PID در حال اجرا نباشد. این ویژگی زمانی مفید است که فرآیند aria2 از یک فرآیند والد ایجاد (fork) شده باشد. فرآیند والد میتواند aria2 را با شناسه pid خود منشعب کند و هنگامی که فرآیند والد به هر دلیلی خارج شود، aria2 میتواند آن را تشخیص داده و خود را خاموش کند.
- --truncate-console-readout [true|false]
- کوتاه کردن خروجی وضعیت کنسول به منظور جا گرفتن در یک سطر. پیشفرض: true
- -v, --version
- چاپ شماره نسخه، کپیرایت و اطلاعات پیکربندی و خروج از برنامه.
نکاتی پیرامون گزینهها (Notes for Options)
آرگومانهای اختیاری (Optional arguments)
گزینههایی که آرگومان آنها داخل براکت ([]) قرار دارد، یک آرگومان اختیاری میپذیرند. معمولاً حذف آرگومان معادل true ارزیابی میشود. اگر از فرم کوتاه این گزینهها (مانند -V) استفاده کرده و آرگومانی ارائه دهید، نام گزینه و آرگومان آن باید به هم متصل باشند (مثلاً -Vfalse). در صورتی که هر فاصلهای بین نام گزینه و آرگومان درج شود، آرگومان به عنوان نشانی (URI) تلقی خواهد شد و معمولاً این چیزی نیست که انتظار دارید.
واحدها (K و M) (Units (K and M))
برخی گزینهها مقادیر K و M را برای نمایش آسانتر ۱۰۲۴ و ۱۰۴۸۵۷۶ به کار میبرند. برنامه aria2 این نویسهها را بدون حساسیت به حروف کوچک و بزرگ تشخیص میدهد. به بیان دیگر، k و m را میتوان دقیقاً همانند K و M استفاده کرد.
نشانی، مگنت، فایل تورنت، فایل متالینک (URI, MAGNET, TORRENT_FILE, METALINK_FILE)
میتوانید چندین نشانی (URI) را در خط فرمان مشخص کنید. مگر اینکه گزینه --force-sequential را مشخص کرده باشید، تمام نشانیها باید به یک فایل یکسان اشاره کنند وگرنه دانلود با شکست مواجه خواهد شد.
میتوانید تعداد دلخواهی نشانی مگنت بیتتورنت (BitTorrent Magnet URI) مشخص کنید. لطفاً توجه داشته باشید که آنها همواره به عنوان دانلود جداگانه تلقی میشوند. هم مقدار Info Hash کدگذاریشده در مبنای ۱۶ با ۴۰ نویسه و هم در مبنای ۳۲ با ۳۲ نویسه پشتیبانی میشوند. پارامترهای متعدد tr پشتیبانی میشوند. به دلیل آنکه نشانیهای مگنت بیتتورنت معمولاً حاوی نویسه & هستند، اکیداً توصیه میشود که همیشه نشانی را با گیومه تکی (') یا جفتی (") محصور کنید. فعالسازی DHT به ویژه در زمانی که پارامتر tr وجود ندارد شدیداً توصیه میشود. برای اطلاعات بیشتر درباره نشانیهای مگنت بیتتورنت به http://www.bittorrent.org/beps/bep_0009.html مراجعه کنید.
همچنین میتوانید تعداد دلخواهی فایل تورنت و اسناد متالینک ذخیرهشده روی دیسک محلی را مشخص کنید. لطفاً توجه داشته باشید که با آنها همیشه به عنوان دانلود جداگانه برخورد میشود. هر دو نسخه Metalink4 و Metalink نسخه 3.0 پشتیبانی میشوند.
میتوانید هم فایل تورنت را با گزینه -T و هم نشانیها را مشخص کنید. با انجام این کار، میتوانید یک فایل را همزمان از گروه اشتراکگذاری تورنت (swarm) و سرور HTTP(S)/FTP/SFTP دانلود کنید، در حالی که دادههای حاصل از HTTP(S)/FTP/SFTP در گروه تورنت آپلود میشوند. برای تورنتهای تکفایلی، نشانی میتواند یک نشانی کامل باشد که به منبع اشاره میکند یا اگر نشانی به / ختم شود، نام فایل موجود در فایل تورنت به آن افزوده میشود. برای تورنتهای چندفایلی، نام و مسیر افزوده میشوند تا برای هر فایل یک نشانی ساخته شود.
نکته:
ادامه دانلود (Resuming Download)
معمولاً اگر انتقال پیشین توسط aria2 انجام شده باشد، میتوانید تنها با اجرای مجدد همان دستور (aria2c URI) انتقال را از سر بگیرید.
اگر انتقال قبلی توسط مرورگر یا ابزارهای دانلود ترتیبی مانند wget انجام شده باشد، از گزینه --continue برای ادامه انتقال استفاده نمایید.
قلاب رویداد (Event Hook)
برنامه aria2 گزینههایی را جهت تعیین دستوری دلخواه پس از رخ دادن یک رویداد خاص فراهم میکند. در حال حاضر گزینههای زیر در دسترس هستند: --on-bt-download-complete، --on-download-pause، --on-download-complete. --on-download-start، --on-download-error، --on-download-stop.
هنگام اجرای دستور تعیینشده، aria2 تعداد ۳ آرگومان به آن ارسال میکند. این آرگومانها عبارتند از: شناسه GID، تعداد فایلها و مسیر فایل. برای دانلودهای HTTP، FTP و SFTP معمولاً تعداد فایلها ۱ است. دانلود بیتتورنت میتواند شامل چندین فایل باشد. اگر تعداد فایلها بیش از یک مورد باشد، مسیر فایل همان اولین فایل است. به بیان دیگر، این مقدار کلید path در اولین ساختاری است که مقدار کلید selected آن در پاسخ متد RPC به نام aria2.getFiles() برابر با true باشد. اگر مایل به دریافت مسیر همه فایلها هستید، استفاده از JSON-RPC/XML-RPC را مد نظر قرار دهید. لطفاً توجه داشته باشید که مسیر فایل در دانلودهای HTTP ممکن است به دلیل تغییر مسیر (ریدایرکت) یا هدر Content-Disposition در طول دانلود تغییر کند.
بیایید نمونهای از نحوه ارسال آرگومانها به دستور را مشاهده کنیم:
$ cat hook.sh #!/bin/sh echo "Called with [$1] [$2] [$3]" $ aria2c --on-download-complete hook.sh http://example.org/file.iso Called with [1] [1] [/path/to/file.iso]
وضعیت خروج (EXIT STATUS)
از آنجا که aria2 میتواند چندین دانلود را بهطور همزمان مدیریت کند، ممکن است در یک نشست با خطاهای متعددی روبرو شود. ابزار aria2 بر اساس آخرین خطای رخداده، وضعیتهای خروج زیر را بازمیگرداند:
- 0
- اگر تمامی دانلودها موفقیتآمیز بوده باشند.
- 1
- اگر خطای ناشناختهای رخ داده باشد.
- 2
- اگر مهلت زمانی (timeout) رخ داده باشد.
- 3
- اگر منبع یافت نشده باشد.
- 4
- اگر aria2 به تعداد مشخصشده با خطای "resource not found" مواجه شود. گزینه --max-file-not-found را ببینید.
- 5
- اگر دانلودی به دلیل سرعت بسیار پایین متوقف شود. گزینه --lowest-speed-limit را ببینید.
- 6
- اگر مشکل شبکه رخ داده باشد.
- 7
- اگر دانلودهای ناتمامی وجود داشته باشند. این خطا فقط در صورتی گزارش میشود که تمامی دانلودهای پایانیافته موفقیتآمیز بوده باشند و هنگام خروج aria2 با فشردن کلیدهای Ctrl-C توسط کاربر یا ارسال سیگنال TERM یا INT، دانلودهای ناتمامی در صف باقی مانده باشند.
- 8
- اگر سرور دوردست از ادامه دانلود (resume) پشتیبانی نکند، در حالی که برای تکمیل دانلود به ازسرگیری نیاز بوده است.
- 9
- اگر فضای دیسک کافی در دسترس نباشد.
- 10
- اگر اندازه قطعه با مقدار موجود در فایل کنترلی .aria2 متفاوت باشد. گزینه --allow-piece-length-change را ببینید.
- 11
- اگر aria2 در همان لحظه در حال دانلود همان فایل باشد.
- 12
- اگر aria2 در همان لحظه در حال دانلود تورنتی با همان هش اطلاعاتی (info hash) باشد.
- 13
- اگر فایل از قبل وجود داشته باشد. گزینه --allow-overwrite را ببینید.
- 14
- اگر تغییر نام فایل ناموفق باشد. گزینه --auto-file-renaming را ببینید.
- 15
- اگر aria2 نتواند فایل موجود را باز کند.
- 16
- اگر aria2 نتواند فایل جدیدی بسازد یا اندازه فایل موجود را تغییر دهد (truncate کند).
- 17
- اگر خطای ورودی/خروجی (I/O) فایل رخ دهد.
- 18
- اگر aria2 نتواند دایرکتوری را بسازد.
- 19
- اگر تحلیل نام (name resolution) با شکست مواجه شود.
- 20
- اگر aria2 نتواند سند متالینک (Metalink) را تجزیه کند.
- 21
- اگر دستور FTP با شکست مواجه شود.
- 22
- اگر سرآیند پاسخ HTTP نامعتبر یا غیرمنتظره باشد.
- 23
- اگر تعداد تغییر مسیرها (redirects) بیش از حد باشد.
- 24
- اگر احراز هویت HTTP ناموفق باشد.
- 25
- اگر aria2 نتواند فایل کدگذاریشده با bencode (معمولاً فایل ".torrent") را تجزیه کند.
- 26
- اگر فایل ".torrent" آسیب دیده باشد یا اطلاعات مورد نیاز aria2 در آن موجود نباشد.
- 27
- اگر نشانی Magnet نامعتبر باشد.
- 28
- اگر گزینه نامعتبر/ناشناختهای داده شود یا آرگومان غیرمنتظرهای برای یک گزینه مشخص گردد.
- 29
- اگر سرور دوردست به دلیل بار کاری موقت یا عملیات نگهداری قادر به رسیدگی به درخواست نباشد.
- 30
- اگر aria2 نتواند درخواست JSON-RPC را تجزیه کند.
- 31
- رزرو شده است. استفاده نمیشود.
- 32
- اگر اعتبارسنجی جمع کنترلی (checksum) با شکست مواجه شود.
نکته:
متغیرهای محیطی (ENVIRONMENT)
برنامه aria2 متغیرهای محیطی زیر را شناسایی میکند.
- http_proxy [http://][USER:PASSWORD@]HOST[:PORT]
- مشخص کردن سرور پروکسی برای استفاده در پروتکل HTTP. بر مقدار http-proxy در فایل پیکربندی اولویت دارد. گزینه خط فرمان --http-proxy بر این مقدار اولویت خواهد داشت.
- https_proxy [http://][USER:PASSWORD@]HOST[:PORT]
- مشخص کردن سرور پروکسی برای استفاده در پروتکل HTTPS. بر مقدار https-proxy در فایل پیکربندی اولویت دارد. گزینه خط فرمان --https-proxy بر این مقدار اولویت خواهد داشت.
- ftp_proxy [http://][USER:PASSWORD@]HOST[:PORT]
- مشخص کردن سرور پروکسی برای استفاده در پروتکل FTP. بر مقدار ftp-proxy در فایل پیکربندی اولویت دارد. گزینه خط فرمان --ftp-proxy بر این مقدار اولویت خواهد داشت.
- all_proxy [http://][USER:PASSWORD@]HOST[:PORT]
- مشخص کردن سرور پروکسی در صورتی که پروکسی اختصاصی برای پروتکل تعیین نشده باشد. بر مقدار all-proxy در فایل پیکربندی اولویت دارد. گزینه خط فرمان --all-proxy بر این مقدار اولویت خواهد داشت.
نکته:
- no_proxy [DOMAIN,...]
- مشخص کردن فهرستی جداشده با کاما از نامهای میزبان، دامنهها و نشانیهای شبکه با یا بدون ماسک زیرشبکه که نباید در آنها از پروکسی استفاده شود. بر مقدار no-proxy در فایل پیکربندی اولویت دارد. گزینه خط فرمان --no-proxy بر این مقدار اولویت خواهد داشت.
فایلها (FILES)
aria2.conf
بهطور پیشفرض، aria2 بررسی میکند که آیا مسیر قدیمی $HOME/.aria2/aria2.conf موجود است یا خیر، در غیر این صورت $XDG_CONFIG_HOME/aria2/aria2.conf را به عنوان فایل پیکربندی خود تجزیه میکند. شما میتوانید با استفاده از گزینه --conf-path مسیر فایل پیکربندی را مشخص کنید. اگر نمیخواهید از فایل پیکربندی استفاده کنید، از گزینه --no-conf استفاده کنید.
فایل پیکربندی یک فایل متنی است و در هر خط ۱ گزینه قرار میگیرد. در هر خط، میتوانید جفت نام-مقدار را با قالب NAME=VALUE مشخص کنید، که در آن name نام طولانی گزینه در خط فرمان بدون پیشوند -- است. میتوانید از همان نحو برای گزینههای خط فرمان استفاده کنید. خطوطی که با # شروع میشوند به عنوان کامنت در نظر گرفته میشوند:
# sample configuration file for aria2c listen-port=60000 dht-listen-port=60000 seed-ratio=1.0 max-upload-limit=50K ftp-pasv=true
نکته:
متغیرهای محیطی، مانند ${HOME}، توسط پوسته بسط داده میشوند. این بدان معناست که آن متغیرهای استفادهشده در فایل پیکربندی بهطور خودکار بسط داده نمیشوند. با این حال، استفاده از ${HOME} برای ارجاع به دایرکتوری خانگی کاربر در فایل پیکربندی جهت تعیین مسیر فایلها بسیار سودمند است. از این رو، aria2 متغیر ${HOME} را که در مقادیر گزینههای زیر یافت شود به دایرکتوری خانگی کاربر بسط میدهد:
- ca-certificate
- certificate
- dht-file-path
- dht-file-path6
- dir
- input-file
- load-cookies
- log
- metalink-file
- netrc-path
- on-bt-download-complete
- on-download-complete
- on-download-error
- on-download-start
- on-download-stop
- on-download-pause
- out
- private-key
- rpc-certificate
- rpc-private-key
- save-cookies
- save-session
- server-stat-if
- server-stat-of
- torrent-file
توجه داشته باشید که این بسط حتی در صورتی که گزینههای بالا در خط فرمان استفاده شوند نیز رخ میدهد. این بدان معناست که بسط ممکن است ۲ بار رخ دهد: ابتدا، پوسته و سپس aria2c.
dht.dat
مگر در مواردی که مسیرهای فایل قدیمی $HOME/.aria2/dht.dat و $HOME/.aria2/dht6.dat به فایلهای موجود اشاره داشته باشند، جدول مسیریابی DHT مربوط به IPv4 در مسیر $XDG_CACHE_HOME/aria2/dht.dat و جدول مسیریابی DHT مربوط به IPv6 در مسیر $XDG_CACHE_HOME/aria2/dht6.dat ذخیره میشود.
Netrc
پشتیبانی از Netrc بهطور پیشفرض برای HTTP(S)/FTP/SFTP فعال است. برای غیرفعال کردن پشتیبانی از netrc، گزینه --no-netrc را مشخص کنید. فایل .netrc شما باید دارای مجوزهای دسترسی صحیح (600) باشد.
اگر نام ماشین با . شروع شود، aria2 بهجای تطابق دقیق، تطابق دامنه (domain-match) انجام میدهد. این قابلیت یکی از افزونههای aria2 است. برای نمونهای از تطابق دامنه، ورودی .netrc زیر را در نظر بگیرید:
machine .example.org login myid password mypasswd
دامنه aria2.example.org با .example.org تطابق دامنهای پیدا کرده و از myid و mypasswd استفاده میکند.
چند مثال از تطابق دامنه در ادامه آمده است: example.net با .example.org تطابق دامنه ندارد. example.org به دلیل وجود . در ابتدا، با .example.org تطابق دامنه ندارد. اگر میخواهید با example.org تطابق پیدا کند، example.org را مشخص نمایید.
فایل کنترلی (Control File)
برنامه aria2 برای رهگیری پیشرفت دانلود از یک فایل کنترلی استفاده میکند. یک فایل کنترلی در همان دایرکتوری فایل در حال دانلود قرار داده میشود و نام فایل آن برابر با نام فایل در حال دانلود به همراه .aria2 در انتهای آن است. به عنوان مثال، اگر در حال دانلود file.zip هستید، آنگاه فایل کنترلی باید file.zip.aria2 باشد. (یک استثنا برای این قاعده نامگذاری وجود دارد. اگر در حال دانلود یک تورنت چندگانه (multi torrent) هستید، فایل کنترلی آن برابر با نام دایرکتوری اصلی ("top directory") تورنت به همراه .aria2 در انتهای آن است. نام دایرکتوری اصلی مقدار کلید "name" در دایرکتوری "info" درون فایل تورنت است.)
معمولاً پس از تکمیل دانلود، فایل کنترلی حذف میشود. اگر aria2 تشخیص دهد که دانلود قابل ازسرگیری نیست (به عنوان مثال هنگام دانلود فایلی از یک سرور HTTP که از ازسرگیری دانلود پشتیبانی نمیکند)، فایل کنترلی ایجاد نمیشود.
بهطور معمول اگر یک فایل کنترلی را گم کنید، نمیتوانید دانلود را ادامه دهید. اما اگر یک تورنت یا متالینک با جمع کنترلی قطعات (chunk checksums) برای آن فایل دارید، میتوانید با دادن گزینه -V به aria2c در خط فرمان، دانلود را بدون فایل کنترلی از سر بگیرید.
فایل ورودی (Input File)
فایل ورودی میتواند شامل فهرستی از نشانیها (URIs) باشد تا aria2 آنها را دانلود کند. شما میتوانید چندین نشانی را برای یک موجودیت واحد مشخص کنید: نشانیها را روی یک خط واحد با استفاده از نویسه TAB جدا کنید.
با هر خط بهگونهای رفتار میشود که گویی در آرگومان خط فرمان ارائه شده است. بنابراین آنها تحت تأثیر گزینههای --force-sequential و --parameterized-uri قرار میگیرند.
از آنجا که نشانیهای موجود در فایل ورودی مستقیماً توسط aria2 خوانده میشوند، نباید با نقلقولهای تکی (') یا دوتایی (") محصور شوند.
خطوطی که با # شروع میشوند به عنوان کامنت در نظر گرفته شده و نادیده گرفته میشوند.
علاوه بر این، گزینههای زیر را میتوان پس از هر خط از نشانیها مشخص کرد. این خطوط گزینهها باید حتماً با یک یا چند نویسه فاصله (whitespace) شروع شوند.
- all-proxy
- all-proxy-passwd
- all-proxy-user
- allow-overwrite
- allow-piece-length-change
- always-resume
- async-dns
- auto-file-renaming
- bt-enable-hook-after-hash-check
- bt-enable-lpd
- bt-exclude-tracker
- bt-external-ip
- bt-force-encryption
- bt-hash-check-seed
- bt-load-saved-metadata
- bt-max-peers
- bt-metadata-only
- bt-min-crypto-level
- bt-prioritize-piece
- bt-remove-unselected-file
- bt-request-peer-speed-limit
- bt-require-crypto
- bt-save-metadata
- bt-seed-unverified
- bt-stop-timeout
- bt-tracker
- bt-tracker-connect-timeout
- bt-tracker-interval
- bt-tracker-timeout
- check-integrity
- checksum
- conditional-get
- connect-timeout
- content-disposition-default-utf8
- continue
- dir
- dry-run
- enable-http-keep-alive
- enable-http-pipelining
- enable-mmap
- enable-peer-exchange
- file-allocation
- follow-metalink
- follow-torrent
- force-save
- ftp-passwd
- ftp-pasv
- ftp-proxy
- ftp-proxy-passwd
- ftp-proxy-user
- ftp-reuse-connection
- ftp-type
- ftp-user
- gid
- hash-check-only
- header
- http-accept-gzip
- http-auth-challenge
- http-no-cache
- http-passwd
- http-proxy
- http-proxy-passwd
- http-proxy-user
- http-user
- https-proxy
- https-proxy-passwd
- https-proxy-user
- index-out
- lowest-speed-limit
- max-connection-per-server
- max-download-limit
- max-file-not-found
- max-mmap-limit
- max-resume-failure-tries
- max-tries
- max-upload-limit
- metalink-base-uri
- metalink-enable-unique-protocol
- metalink-language
- metalink-location
- metalink-os
- metalink-preferred-protocol
- metalink-version
- min-split-size
- no-file-allocation-limit
- no-netrc
- no-proxy
- out
- parameterized-uri
- pause
- pause-metadata
- piece-length
- proxy-method
- realtime-chunk-checksum
- referer
- remote-time
- remove-control-file
- retry-wait
- reuse-uri
- rpc-save-upload-metadata
- seed-ratio
- seed-time
- select-file
- split
- ssh-host-key-md
- stream-piece-selector
- timeout
- uri-selector
- use-head
- user-agent
این گزینهها دقیقاً همان مفهوم گزینههای خط فرمان را دارند، اما فقط روی نشانیهایی اعمال میشوند که به آنها تعلق دارند. لطفاً توجه داشته باشید که برای گزینههای درون فایل ورودی، پیشوند -- باید حذف شود.
به عنوان مثال، محتوای uri.txt به این صورت است:
http://server/file.iso http://mirror/file.iso dir=/iso_images out=file.img http://foo/bar
اگر aria2 با گزینههای -i uri.txt -d /tmp اجرا شود، آنگاه file.iso در /iso_images/file.img ذخیره شده و از http://server/file.iso و http://mirror/file.iso دانلود میشود. فایل bar از http://foo/bar دانلود شده و در /tmp/bar ذخیره میگردد.
در برخی موارد، پارامتر out هیچ تأثیری ندارد. برای اطلاع از محدودیتها، نکته مربوط به گزینه --out را ببینید.
پروفایل عملکرد سرور (Server Performance Profile)
این بخش قالب پروفایل عملکرد سرور را توصیف میکند. این فایل یک متن ساده است و هر خط شامل چندین جفت NAME=VALUE است که با کاما از هم جدا شدهاند. در حال حاضر نامهای (NAME) زیر شناسایی میشوند:
- host
- نام میزبان سرور. الزامی.
- protocol
- پروتکل برای این پروفایل، مانند ftp یا http. الزامی.
- dl_speed
- میانگین سرعت دانلود مشاهدهشده در دانلود قبلی بر حسب بایت بر ثانیه. الزامی.
- sc_avg_speed
- میانگین سرعت دانلود مشاهدهشده در دانلود قبلی بر حسب بایت بر ثانیه. این مقدار تنها در صورتی بهروزرسانی میشود که دانلود در محیط تکاتصالی انجام شده باشد و تنها توسط AdaptiveURISelector استفاده میشود. اختیاری.
- mc_avg_speed
- میانگین سرعت دانلود مشاهدهشده در دانلود قبلی بر حسب بایت بر ثانیه. این مقدار تنها در صورتی بهروزرسانی میشود که دانلود در محیط چنداتصالی انجام شده باشد و تنها توسط AdaptiveURISelector استفاده میشود. اختیاری.
- counter
- تعداد دفعاتی که از سرور استفاده شده است. در حال حاضر این مقدار تنها توسط AdaptiveURISelector استفاده میشود. اختیاری.
- last_updated
- آخرین زمان تماس با این سرور به وقت گرینویچ (GMT)، مشخصشده بر حسب ثانیههای سپریشده از مبدأ یونیکس یا Epoch (ساعت 00:00:00 در ۱ ژانویه ۱۹۷۰، UTC). الزامی.
- status
- هنگامی که سرور غیرقابل دسترس باشد یا از سرویسدهی خارج شده باشد یا مهلت زمانی پایان یابد، مقدار ERROR تنظیم میشود. در غیر این صورت، مقدار OK تنظیم خواهد شد.
این فیلدها باید در یک خط وجود داشته باشند. ترتیب فیلدها اهمیتی ندارد. شما میتوانید جفتهایی غیر از موارد بالا را نیز قرار دهید؛ آنها صرفاً نادیده گرفته میشوند.
نمونهای در ادامه آمده است:
host=localhost, protocol=http, dl_speed=32000, last_updated=1222491640, status=OK host=localhost, protocol=ftp, dl_speed=0, last_updated=1222491632, status=ERROR
رابط RPC (RPC INTERFACE)
برنامه aria2 رابطهای JSON-RPC بر بستر HTTP و XML-RPC بر بستر HTTP را ارائه میدهد که اساساً قابلیتهای یکسانی دارند. همچنین aria2 رابط JSON-RPC بر بستر وبسوکت (WebSocket) را نیز فراهم میکند. پروتکل JSON-RPC بر بستر وبسوکت از همان امضاهای متد و قالبهای پاسخ JSON-RPC بر بستر HTTP استفاده میکند، اما علاوه بر آن، اعلانهای ارائهشده از سمت سرور را نیز مهیا میسازد. برای اطلاعات بیشتر بخش JSON-RPC over WebSocket را ببینید.
مسیر درخواست رابط JSON-RPC (هم بر بستر HTTP و هم بر بستر وبسوکت) برابر با /jsonrpc است. مسیر درخواست رابط XML-RPC برابر با /rpc است.
نشانی وبسوکت برای JSON-RPC بر بستر وبسوکت بهصورت ws://HOST:PORT/jsonrpc است. در صورتی که رمزنگاری SSL/TLS را فعال کردهاید، به جای آن از wss://HOST:PORT/jsonrpc استفاده کنید.
پیادهسازی JSON-RPC بر پایه استاندارد JSON-RPC 2.0 http://jsonrpc.org/specification است و از روشهای HTTP POST و GET (JSONP) پشتیبانی میکند. انتقال بر بستر وبسوکت یکی از افزونههای اختصاصی aria2 است.
رابط JSON-RPC از اعلانها بر بستر HTTP پشتیبانی نمیکند، اما سرور RPC اعلانها را بر بستر وبسوکت ارسال خواهد کرد. همچنین این رابط از اعداد اعشاری ممیز شناور پشتیبانی نمیکند. کدگذاری نویسهها باید حتماً UTF-8 باشد.
هنگام مطالعه مستندات زیر برای JSON-RPC، ساختارها (structs) را به عنوان اشیاء JSON در نظر بگیرید.
اصطلاحات (Terminology)
GID
توکن محرمانه احراز هویت RPC (RPC authorization secret token)
از نسخه 1.18.4 به بعد، برنامه aria2 علاوه بر احراز هویت پایه HTTP، احراز هویت در سطح متدهای RPC را نیز فراهم کرده است. در انتشارهای آینده، احراز هویت پایه HTTP حذف خواهد شد و احراز هویت در سطح متد RPC اجباری میشود.
برای استفاده از احراز هویت در سطح متد RPC، کاربر باید با استفاده از گزینه --rpc-secret یک توکن امنیتی محرمانه تعیین کند. برای فراخوانی هر متد RPC، فراخواننده باید این توکن را با پیشوند token: ارسال کند. حتی زمانی که از گزینه --rpc-secret استفاده نشده باشد، اگر اولین پارامتر در متد RPC یک رشته باشد و با token: شروع شود، پیش از پردازش درخواست از لیست پارامترها حذف خواهد شد.
به عنوان مثال، اگر توکن محرمانه RPC برابر با $$secret$$ باشد، فراخوانی متد RPC با نام aria2.addUri باید بدین صورت باشد:
aria2.addUri("token:$$secret$$", ["http://example.org/file"])
با متد RPC به نام system.multicall بهطور ویژهای برخورد میشود. از آنجا که مشخصات XML-RPC فقط اجازه ارسال یک آرایه منفرد به عنوان پارامتر برای این متد را میدهد، ما توکن را در خود فراخوانی مشخص نمیکنیم. در عوض، هر فراخوانی متد تو در تو باید طبق توضیحات بالا، توکن را به عنوان پارامتر اول مهیا سازد.
نکته:
متدهای system.listMethods و system.listNotifications را میتوان بدون توکن اجرا کرد. از آنجا که این متدها صرفاً متدها/اعلانهای موجود را بازمیگردانند و چیزی را تغییر نمیدهند، بدون توکن محرمانه نیز امن هستند.
متدها (Methods)
تمام مثالهای کد با مفسر پایتون 2.7 سازگار هستند. برای اطلاعات درباره پارامتر secret، بخش RPC authorization secret token را ببینید.
- aria2.addUri([secret], uris[, options[, position]])
- این متد یک
دانلود
جدید اضافه
میکند. uris
یک آرایه از
نشانیهای
URIs (رشتهها)
برای
پروتکلهای
HTTP/FTP/SFTP/BitTorrent است که
به یک منبع
یکسان
اشاره
دارند. اگر
نشانیهای
اشارهکننده
به منابع
مختلف را با
هم ترکیب
کنید،
دانلود
ممکن است با
شکست مواجه
شود یا بدون
اعلام
خطایی از
سوی aria2 خراب
گردد. هنگام
افزودن
نشانیهای
مگنت
بیتتورنت
(BitTorrent Magnet URIs)،
پارامتر uris
باید تنها
دارای یک
عنصر باشد و
آن عنصر نیز
باید نشانی
Magnet
بیتتورنت
باشد.
پارامتر options
یک ساختار (struct)
است و اعضای
آن جفتهای
نام گزینه و
مقدار
هستند. برای
جزئیات
بیشتر، بخش
گزینهها
(Options) در ادامه
را ببینید.
در صورت
تعیین position،
این مقدار
باید یک عدد
صحیح از 0 به
بالا باشد.
دانلود
جدید در
موقعیت position
در صف
انتظار درج
خواهد شد.
اگر position حذف
شود یا
مقدار آن از
اندازه
فعلی صف
بزرگتر
باشد،
دانلود
جدید به
انتهای صف
افزوده
میشود. این
متد شناسه GID
دانلود
جدیداً
ثبتشده را
بازمیگرداند.
مثال JSON-RPC
مثال زیر نشانی http://example.org/file را اضافه میکند:
>>> import urllib2, json
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.addUri',
... 'params':[['http://example.org/file']]})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> c.read()
'{"id":"qwer","jsonrpc":"2.0","result":"2089b05ecca3d829"}'
مثال XML-RPC
مثال زیر نشانی http://example.org/file را اضافه میکند:
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> s.aria2.addUri(['http://example.org/file'])
'2089b05ecca3d829'
مثال زیر یک دانلود جدید را با دو منبع و چند گزینه اضافه میکند:
>>> s.aria2.addUri(['http://example.org/file', 'http://mirror/file'],
dict(dir="/tmp"))
'd2703803b52216d1'
مثال زیر یک دانلود اضافه کرده و آن را در ابتدای صف قرار میدهد:
>>> s.aria2.addUri(['http://example.org/file'], {}, 0)
'ca3d829cee549a4d'
- aria2.addTorrent([secret], torrent[, uris[, options[, position]]])
- این متد با
بارگذاری
یک فایل ".torrent"
یک دانلود
بیتتورنت
اضافه
میکند. اگر
میخواهید
یک نشانی
مگنت
بیتتورنت
اضافه
کنید، به
جای آن از
متد aria2.addUri()
استفاده
نمایید.
پارامتر torrent
باید یک
رشته
کدگذاریشده
با base64 شامل
محتویات
فایل ".torrent"
باشد.
پارامتر uris
یک آرایه از
نشانیهای
URIs (رشته) است.
از uris برای
سیدینگ وب
(Web-seeding) استفاده
میشود.
برای
تورنتهای
تکفایلی،
این نشانی
میتواند
یک URI کامل با
اشاره به
منبع باشد؛
اگر URI با /
خاتمه
یابد، نام
موجود در
فایل تورنت
به آن
افزوده
میشود.
برای
تورنتهای
چندفایلی،
نام و مسیر
در تورنت
اضافه
میشوند تا
یک URI برای هر
فایل تشکیل
دهند.
پارامتر options
یک ساختار (struct)
است و اعضای
آن جفتهای
نام گزینه و
مقدار
هستند. برای
جزئیات
بیشتر بخش
گزینهها
(Options) در ادامه
را ببینید.
در صورت
تعیین position،
این مقدار
باید یک عدد
صحیح از 0 به
بالا باشد.
دانلود
جدید در
موقعیت position
در صف
انتظار درج
خواهد شد.
اگر position حذف
شود یا
مقدار آن از
اندازه
فعلی صف
بزرگتر
باشد،
دانلود
جدید به
انتهای صف
افزوده
میشود. این
متد شناسه GID
دانلود
جدیداً
ثبتشده را
بازمیگرداند.
اگر گزینه
--rpc-save-upload-metadata برابر
با true باشد،
دادههای
بارگذاریشده
بهصورت یک
فایل با
نامی شامل
رشته هگز هش
SHA-1 دادهها
به همراه
پسوند ".torrent"
در پوشه
مشخصشده
با گزینه --dir
ذخیره
میشوند؛
برای مثال
نام فایل
ممکن است
0a3893293e27ac0490424c06de4d09242215f0a6.torrent
باشد. اگر
فایلی با
همین نام از
قبل وجود
داشته
باشد،
بازنویسی
(overwrite) خواهد شد!
اگر فایل
نتواند با
موفقیت
ذخیره شود
یا گزینه
--rpc-save-upload-metadata برابر
با false باشد،
دانلودهای
اضافهشده
توسط این
متد توسط
گزینه --save-session
ذخیره
نمیشوند.
مثالهای زیر فایل محلی file.torrent را اضافه میکنند.
مثال JSON-RPC
>>> import urllib2, json, base64
>>> torrent = base64.b64encode(open('file.torrent').read())
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'asdf',
... 'method':'aria2.addTorrent', 'params':[torrent]})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> c.read()
'{"id":"asdf","jsonrpc":"2.0","result":"2089b05ecca3d829"}'
مثال XML-RPC
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> s.aria2.addTorrent(xmlrpclib.Binary(open('file.torrent', mode='rb').read()))
'2089b05ecca3d829'
- aria2.addMetalink([secret], metalink[, options[, position]])
- این متد با
بارگذاری
یک فایل ".metalink"
یک دانلود
متالینک
اضافه
میکند.
پارامتر metalink
یک رشته
کدگذاریشده
با base64 است که
محتویات
فایل ".metalink" را
در بر دارد.
پارامتر options
یک ساختار (struct)
است و اعضای
آن جفتهای
نام گزینه و
مقدار
هستند. برای
جزئیات
بیشتر بخش
گزینهها
(Options) در ادامه
را ببینید.
در صورت
تعیین position،
این مقدار
باید یک عدد
صحیح از 0 به
بالا باشد.
دانلود
جدید در
موقعیت position
در صف
انتظار درج
خواهد شد.
اگر position حذف
شود یا
مقدار آن از
اندازه
فعلی صف
بزرگتر
باشد،
دانلود
جدید به
انتهای صف
افزوده
میشود. این
متد
آرایهای
از
شناسههای
GID
دانلودهای
جدیداً
ثبتشده را
بازمیگرداند.
اگر گزینه
--rpc-save-upload-metadata برابر
با true باشد،
دادههای
بارگذاریشده
بهصورت یک
فایل با
نامی شامل
رشته هگز هش
SHA-1 دادهها
به همراه
پسوند ".metalink"
در پوشه
مشخصشده
با گزینه --dir
ذخیره
میشوند؛
برای مثال
نام فایل
ممکن است
0a3893293e27ac0490424c06de4d09242215f0a6.metalink
باشد. اگر
فایلی با
همین نام از
قبل وجود
داشته
باشد،
بازنویسی
خواهد شد!
اگر فایل
نتواند با
موفقیت
ذخیره شود
یا گزینه
--rpc-save-upload-metadata برابر
با false باشد،
دانلودهای
اضافهشده
توسط این
متد توسط
--save-session ذخیره
نمیشوند.
مثالهای زیر فایل محلی file.meta4 را اضافه میکنند.
مثال JSON-RPC
>>> import urllib2, json, base64
>>> metalink = base64.b64encode(open('file.meta4').read())
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.addMetalink',
... 'params':[metalink]})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> c.read()
'{"id":"qwer","jsonrpc":"2.0","result":["2089b05ecca3d829"]}'
مثال XML-RPC
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> s.aria2.addMetalink(xmlrpclib.Binary(open('file.meta4', mode='rb').read()))
['2089b05ecca3d829']
- aria2.remove([secret], gid)
- این متد
دانلودی که
با gid (رشته)
مشخص شده را
حذف میکند.
اگر دانلود
مشخصشده
در حال
انجام
باشد،
ابتدا
متوقف
میشود.
وضعیت
دانلود
حذفشده به
removed تغییر
مییابد.
این متد
شناسه GID
دانلود
حذفشده را
بازمیگرداند.
مثالهای زیر دانلودی با GID#2089b05ecca3d829 را حذف میکنند.
مثال JSON-RPC
>>> import urllib2, json
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.remove',
... 'params':['2089b05ecca3d829']})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> c.read()
'{"id":"qwer","jsonrpc":"2.0","result":"2089b05ecca3d829"}'
مثال XML-RPC
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> s.aria2.remove('2089b05ecca3d829')
'2089b05ecca3d829'
- aria2.forceRemove([secret], gid)
- این متد دانلود مشخصشده با gid را حذف میکند. عملکرد این متد دقیقاً شبیه به aria2.remove() است، با این تفاوت که دانلود را بدون انجام اقدامات زمانبر (مانند تماس با ترکرهای بیتتورنت برای لغو ثبت اولیه دانلود) حذف میکند.
- aria2.pause([secret], gid)
- این متد دانلود مشخصشده با gid (رشته) را متوقف موقت (pause) میکند. وضعیت دانلود متوقفشده به paused تبدیل میشود. اگر دانلود فعال بود، در ابتدای صف انتظار قرار میگیرد. تا زمانی که وضعیت paused باشد، دانلود شروع نخواهد شد. برای تغییر وضعیت به waiting، از متد aria2.unpause() استفاده کنید. این متد شناسه GID دانلود متوقفشده را بازمیگرداند.
- aria2.pauseAll([secret])
- این متد معادل فراخوانی aria2.pause() برای تمام دانلودهای فعال/در حال انتظار است. این متد مقدار OK را بازمیگرداند.
- aria2.forcePause([secret], gid)
- این متد دانلود مشخصشده با gid را متوقف موقت میکند. عملکرد این متد دقیقاً شبیه به aria2.pause() است، با این تفاوت که دانلودها را بدون انجام اقدامات زمانبر (مانند تماس با ترکرهای بیتتورنت برای لغو ثبت دانلود) متوقف میکند.
- aria2.forcePauseAll([secret])
- این متد معادل فراخوانی aria2.forcePause() برای تمام دانلودهای فعال/در حال انتظار است. این متد مقدار OK را بازمیگرداند.
- aria2.unpause([secret], gid)
- این متد وضعیت دانلود مشخصشده با gid (رشته) را از paused به waiting تغییر داده و آن را واجد شرایط ازسرگیری دانلود میکند. این متد شناسه GID دانلود ازسرگرفتهشده را بازمیگرداند.
- aria2.unpauseAll([secret])
- این متد معادل فراخوانی aria2.unpause() برای تمام دانلودهای متوقفشده است. این متد مقدار OK را بازمیگرداند.
- aria2.tellStatus([secret], gid[, keys])
- این متد میزان پیشرفت دانلود مشخصشده با gid (رشته) را بازمیگرداند. keys آرایهای از رشتهها است. در صورت تعیین شدن، پاسخ فقط شامل کلیدهای موجود در آرایه keys خواهد بود. اگر keys خالی باشد یا حذف شود، پاسخ شامل تمامی کلیدها خواهد بود. این ویژگی زمانی مفید است که شما فقط به دنبال دریافت کلیدهای خاصی هستید و میخواهید از انتقالهای غیرضروری داده جلوگیری کنید. برای مثال، aria2.tellStatus("2089b05ecca3d829", ["gid", "status"]) تنها کلیدهای gid و status را بازمیگرداند. پاسخ یک ساختار (struct) است و شامل کلیدهای زیر است. مقادیر بهصورت رشته هستند.
- gid
- شناسه GID دانلود.
- status
- مقدار active برای دانلودهایی که هماکنون در حال دریافت/سیدینگ هستند. مقدار waiting برای دانلودهای حاضر در صف؛ دانلود هنوز شروع نشده است. مقدار paused برای دانلودهای متوقفشده به صورت موقت. مقدار error برای دانلودهایی که به دلیل خطا متوقف شدهاند. مقدار complete برای دانلودهای متوقفشده و تکمیلشده. مقدار removed برای دانلودهایی که توسط کاربر حذف شدهاند.
- totalLength
- طول کلی دانلود به بایت.
- completedLength
- طول تکمیلشده دانلود به بایت.
- uploadLength
- طول آپلودشده دانلود به بایت.
- bitfield
- نمایش هگزادسیمال پیشرفت دانلود. بالاترین بیت متناظر با قطعه در اندیس 0 است. هر بیت فعال نشاندهنده قطعات بارگیریشده است، در حالی که بیتهای غیرفعال نشان میدهند قطعات هنوز دریافت نشدهاند یا مفقود هستند. هر بیت اضافی در انتها با صفر پر میشود. هنگامی که دانلود هنوز شروع نشده باشد، این کلید در پاسخ گنجانده نخواهد شد.
- downloadSpeed
- سرعت دانلود این مورد بر حسب بایت بر ثانیه.
- uploadSpeed
- سرعت آپلود این مورد بر حسب بایت بر ثانیه.
- infoHash
- هش اطلاعاتی (InfoHash). فقط مخصوص بیتتورنت.
- numSeeders
- تعداد سیدرهایی که aria2 به آنها متصل شده است. فقط مخصوص بیتتورنت.
- seeder
- مقدار true اگر نقطه پایانی محلی یک سیدر باشد؛ در غیر این صورت false. فقط مخصوص بیتتورنت.
- pieceLength
- طول قطعه به بایت.
- numPieces
- تعداد قطعات.
- connections
- تعداد همتاها/سرورهایی که aria2 به آنها متصل شده است.
- errorCode
- کد آخرین خطای رخداده برای این مورد، در صورت وجود. مقدار یک رشته است. کدهای خطا در بخش EXIT STATUS تعریف شدهاند. این مقدار تنها برای دانلودهای متوقفشده/تکمیلشده در دسترس است.
- errorMessage
- پیام خطای خوانا برای انسان که با errorCode مرتبط است.
- followedBy
- فهرستی از شناسههای GID که در نتیجه این دانلود تولید شدهاند. به عنوان مثال، هنگامی که aria2 یک فایل متالینک را دانلود میکند، دانلودهای توصیفشده در متالینک را ایجاد میکند (گزینه --follow-metalink را ببینید). این مقدار برای ردیابی دانلودهای تولیدشده خودکار مفید است. اگر چنین دانلودهایی وجود نداشته باشد، این کلید در پاسخ گنجانده نخواهد شد.
- following
- پیوند معکوس برای followedBy. دانلودی که در followedBy گنجانده شده باشد، شناسه GID این شیء را در مقدار following خود دارد.
- belongsTo
- شناسه GID دانلود والد. برخی از دانلودها بخشی از دانلودی دیگر هستند. برای مثال، اگر فایلی در متالینک دارای منابع بیتتورنت باشد، دانلودهای فایلهای ".torrent" بخشی از آن والد هستند. اگر این دانلود والدی نداشته باشد، این کلید در پاسخ گنجانده نخواهد شد.
- dir
- دایرکتوری برای ذخیره فایلها.
- files
- فهرست فایلها را بازمیگرداند. عناصر این فهرست همان ساختارهایی هستند که در متد aria2.getFiles() استفاده میشوند.
- bittorrent
- ساختاری حاوی اطلاعات استخراجشده از فایل تورنت (.torrent). فقط مخصوص بیتتورنت. این ساختار شامل کلیدهای زیر است:
- announceList
- فهرستی از فهرستهای نشانیهای اعلام (announce URIs). اگر تورنت حاوی announce باشد و فاقد announce-list باشد، مقدار announce به قالب announce-list تبدیل میشود.
- comment
- توضیح تورنت. در صورت در دسترس بودن، از comment.utf-8 استفاده میشود.
- creationDate
- زمان ایجاد تورنت. این مقدار یک عدد صحیح از زمان مبدا (epoch) بر حسب ثانیه است.
- mode
- حالت فایل در تورنت. مقدار یا single است یا multi.
- info
- ساختاری حاوی دادههای واژهنامه Info. این ساختار شامل کلیدهای زیر است:
- name
- نام در واژهنامه info. در صورت در دسترس بودن، از name.utf-8 استفاده میشود.
- verifiedLength
- تعداد بایتهای تاییدشده در حین بررسی هش فایلها. این کلید تنها زمانی وجود دارد که این دانلود در حال بررسی هش باشد.
- verifyIntegrityPending
- مقدار true اگر این دانلود در صف در انتظار بررسی هش باشد. این کلید تنها زمانی وجود دارد که این دانلود در صف باشد.
مثال JSON-RPC
مثال زیر اطلاعات مربوط به دانلود با شناسه GID#2089b05ecca3d829 را دریافت میکند:
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.tellStatus',
... 'params':['2089b05ecca3d829']})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer',
u'jsonrpc': u'2.0',
u'result': {u'bitfield': u'0000000000',
u'completedLength': u'901120',
u'connections': u'1',
u'dir': u'/downloads',
u'downloadSpeed': u'15158',
u'files': [{u'index': u'1',
u'length': u'34896138',
u'completedLength': u'34896138',
u'path': u'/downloads/file',
u'selected': u'true',
u'uris': [{u'status': u'used',
u'uri': u'http://example.org/file'}]}],
u'gid': u'2089b05ecca3d829',
u'numPieces': u'34',
u'pieceLength': u'1048576',
u'status': u'active',
u'totalLength': u'34896138',
u'uploadLength': u'0',
u'uploadSpeed': u'0'}}
مثال زیر تنها کلیدهای خاصی را دریافت میکند:
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.tellStatus',
... 'params':['2089b05ecca3d829',
... ['gid',
... 'totalLength',
... 'completedLength']]})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer',
u'jsonrpc': u'2.0',
u'result': {u'completedLength': u'5701632',
u'gid': u'2089b05ecca3d829',
u'totalLength': u'34896138'}}
مثال XML-RPC
مثال زیر اطلاعات مربوط به دانلود با شناسه GID#2089b05ecca3d829 را دریافت میکند:
>>> import xmlrpclib
>>> from pprint import pprint
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> r = s.aria2.tellStatus('2089b05ecca3d829')
>>> pprint(r)
{'bitfield': 'ffff80',
'completedLength': '34896138',
'connections': '0',
'dir': '/downloads',
'downloadSpeed': '0',
'errorCode': '0',
'files': [{'index': '1',
'length': '34896138',
'completedLength': '34896138',
'path': '/downloads/file',
'selected': 'true',
'uris': [{'status': 'used',
'uri': 'http://example.org/file'}]}],
'gid': '2089b05ecca3d829',
'numPieces': '17',
'pieceLength': '2097152',
'status': 'complete',
'totalLength': '34896138',
'uploadLength': '0',
'uploadSpeed': '0'}
مثال زیر تنها کلیدهای خاصی را دریافت میکند:
>>> r = s.aria2.tellStatus('2089b05ecca3d829', ['gid', 'totalLength', 'completedLength'])
>>> pprint(r)
{'completedLength': '34896138', 'gid': '2089b05ecca3d829', 'totalLength': '34896138'}
- aria2.getUris([secret], gid)
- این متد نشانیهای URIs استفادهشده در دانلود مشخصشده با gid (رشته) را بازمیگرداند. پاسخ یک آرایه از ساختارها است و شامل کلیدهای زیر میباشد. مقادیر از نوع رشته هستند.
مثال JSON-RPC
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.getUris',
... 'params':['2089b05ecca3d829']})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer',
u'jsonrpc': u'2.0',
u'result': [{u'status': u'used',
u'uri': u'http://example.org/file'}]}
مثال XML-RPC
>>> import xmlrpclib
>>> from pprint import pprint
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> r = s.aria2.getUris('2089b05ecca3d829')
>>> pprint(r)
[{'status': 'used', 'uri': 'http://example.org/file'}]
- aria2.getFiles([secret], gid)
- این متد فهرست فایلهای دانلود مشخصشده با gid (رشته) را بازمیگرداند. پاسخ یک آرایه از ساختارها است که شامل کلیدهای زیر میباشند. مقادیر از نوع رشته هستند.
- index
- اندیس فایل، با شروع از 1، به همان ترتیبی که فایلها در تورنت چندفایلی ظاهر میشوند.
- path
- مسیر فایل.
- length
- اندازه فایل به بایت.
- completedLength
- طول تکمیلشده این فایل به بایت. لطفاً توجه داشته باشید که ممکن است مجموع مقادیر completedLength کمتر از completedLength بازگرداندهشده توسط متد aria2.tellStatus() باشد. دلیل این امر این است که completedLength در aria2.getFiles() تنها شامل قطعات تکمیلشده است. از سوی دیگر، completedLength در aria2.tellStatus() قطعاتی را که تا حدی تکمیل شدهاند نیز شامل میشود.
- selected
- مقدار true اگر این فایل با گزینه --select-file انتخاب شده باشد. اگر --select-file مشخص نشده باشد یا این مورد یک تورنت تکفایل یا اصولاً دانلودی غیر از تورنت باشد، این مقدار همیشه true خواهد بود؛ در غیر این صورت false است.
- uris
- فهرستی از نشانیهای URIs را برای این فایل بازمیگرداند. نوع عناصر همان ساختاری است که در متد aria2.getUris() استفاده میشود.
مثال JSON-RPC
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.getFiles',
... 'params':['2089b05ecca3d829']})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer',
u'jsonrpc': u'2.0',
u'result': [{u'index': u'1',
u'length': u'34896138',
u'completedLength': u'34896138',
u'path': u'/downloads/file',
u'selected': u'true',
u'uris': [{u'status': u'used',
u'uri': u'http://example.org/file'}]}]}
مثال XML-RPC
>>> import xmlrpclib
>>> from pprint import pprint
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> r = s.aria2.getFiles('2089b05ecca3d829')
>>> pprint(r)
[{'index': '1',
'length': '34896138',
'completedLength': '34896138',
'path': '/downloads/file',
'selected': 'true',
'uris': [{'status': 'used',
'uri': 'http://example.org/file'}]}]
- aria2.getPeers([secret], gid)
- این متد فهرستی از همتاهای دانلود مشخصشده با gid (رشته) را بازمیگرداند. این متد فقط مخصوص بیتتورنت است. پاسخ یک آرایه از ساختارها است و شامل کلیدهای زیر میباشد. مقادیر از نوع رشته هستند.
- peerId
- شناسه همتا (peer ID) با کدگذاری درصدی (Percent-encoded).
- ip
- آدرس IP همتا.
- port
- شماره پورت همتا.
- bitfield
- نمایش هگزادسیمال پیشرفت دانلود همتا. بالاترین بیت متناظر با قطعه در اندیس 0 است. بیتهای فعال نشان میدهند که قطعه در دسترس است و بیتهای غیرفعال نشاندهنده مفقود بودن قطعه هستند. هر بیت اضافی در انتها برابر صفر تنظیم میشود.
- amChoking
- مقدار true اگر aria2 همتا را مسدود (choking) کرده باشد؛ در غیر این صورت false.
- peerChoking
- مقدار true اگر همتا aria2 را مسدود کرده باشد؛ در غیر این صورت false.
- downloadSpeed
- سرعت دانلود (بایت بر ثانیه) که این کلاینت از همتا دریافت میکند.
- uploadSpeed
- سرعت آپلود (بایت بر ثانیه) که این کلاینت به همتا ارسال میکند.
- seeder
- مقدار true اگر این همتا یک سیدر باشد؛ در غیر این صورت false.
مثال JSON-RPC
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.getPeers',
... 'params':['2089b05ecca3d829']})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer',
u'jsonrpc': u'2.0',
u'result': [{u'amChoking': u'true',
u'bitfield': u'ffffffffffffffffffffffffffffffffffffffff',
u'downloadSpeed': u'10602',
u'ip': u'10.0.0.9',
u'peerChoking': u'false',
u'peerId': u'aria2%2F1%2E10%2E5%2D%87%2A%EDz%2F%F7%E6',
u'port': u'6881',
u'seeder': u'true',
u'uploadSpeed': u'0'},
{u'amChoking': u'false',
u'bitfield': u'ffffeff0fffffffbfffffff9fffffcfff7f4ffff',
u'downloadSpeed': u'8654',
u'ip': u'10.0.0.30',
u'peerChoking': u'false',
u'peerId': u'bittorrent client758',
u'port': u'37842',
u'seeder': u'false',
u'uploadSpeed': u'6890'}]}
مثال XML-RPC
>>> import xmlrpclib
>>> from pprint import pprint
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> r = s.aria2.getPeers('2089b05ecca3d829')
>>> pprint(r)
[{'amChoking': 'true',
'bitfield': 'ffffffffffffffffffffffffffffffffffffffff',
'downloadSpeed': '10602',
'ip': '10.0.0.9',
'peerChoking': 'false',
'peerId': 'aria2%2F1%2E10%2E5%2D%87%2A%EDz%2F%F7%E6',
'port': '6881',
'seeder': 'true',
'uploadSpeed': '0'},
{'amChoking': 'false',
'bitfield': 'ffffeff0fffffffbfffffff9fffffcfff7f4ffff',
'downloadSpeed': '8654',
'ip': '10.0.0.30',
'peerChoking': 'false',
'peerId': 'bittorrent client758',
'port': '37842',
'seeder': 'false,
'uploadSpeed': '6890'}]
- aria2.getServers([secret], gid)
- این متد سرورهای HTTP(S)/FTP/SFTP متصل فعلی را برای دانلود مشخصشده با gid (رشته) بازمیگرداند. پاسخ یک آرایه از ساختارها است و شامل کلیدهای زیر میباشد. مقادیر از نوع رشته هستند.
- index
- اندیس فایل، با شروع از 1، به همان ترتیبی که فایلها در متالینک چندفایلی ظاهر میشوند.
- servers
- فهرستی از ساختارها که شامل کلیدهای زیر هستند:
- uri
- نشانی URI اصلی.
- currentUri
- این نشانی URI است که در حال حاضر برای دانلود استفاده میشود. اگر تغییر مسیر (redirection) رخ داده باشد، currentUri و uri ممکن است متفاوت باشند.
- downloadSpeed
- سرعت دانلود (بایت بر ثانیه)
مثال JSON-RPC
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.getServers',
... 'params':['2089b05ecca3d829']})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer',
u'jsonrpc': u'2.0',
u'result': [{u'index': u'1',
u'servers': [{u'currentUri': u'http://example.org/file',
u'downloadSpeed': u'10467',
u'uri': u'http://example.org/file'}]}]}
مثال XML-RPC
>>> import xmlrpclib
>>> from pprint import pprint
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> r = s.aria2.getServers('2089b05ecca3d829')
>>> pprint(r)
[{'index': '1',
'servers': [{'currentUri': 'http://example.org/dl/file',
'downloadSpeed': '20285',
'uri': 'http://example.org/file'}]}]
- aria2.tellActive([secret][, keys])
- این متد فهرستی از دانلودهای فعال را بازمیگرداند. پاسخ آرایهای از همان ساختارهایی است که توسط متد aria2.tellStatus() بازگردانده میشوند. برای پارامتر keys، لطفاً به متد aria2.tellStatus() مراجعه کنید.
- aria2.tellWaiting([secret], offset, num[, keys])
- این متد
فهرستی از
دانلودهای
در حال
انتظار،
شامل
دانلودهای
متوقفشده
موقت (paused) را
بازمیگرداند.
پارامتر offset
یک عدد صحیح
است و فاصله
(offset) را از
دانلودی که
در جلوی صف
انتظار
قرار دارد
مشخص
میکند.
پارامتر num
یک عدد صحیح
است و
حداکثر
تعداد
دانلودهایی
را که باید
بازگردانده
شوند تعیین
میکند.
برای
پارامتر
keys، لطفاً
به متد aria2.tellStatus()
مراجعه
کنید.
اگر offset یک عدد صحیح مثبت باشد، این متد دانلودها را در محدوده [offset, offset + num) بازمیگرداند.
پارامتر offset میتواند یک عدد صحیح منفی باشد. مقدار offset == -1 به آخرین دانلود در صف انتظار اشاره دارد و offset == -2 به دانلود قبل از آخرین دانلود اشاره میکند و الی آخر. در این حالت دانلودهای موجود در پاسخ به ترتیب معکوس خواهند بود.
برای مثال، فرض کنید سه دانلود "A"، "B" و "C" به همین ترتیب در حال انتظار هستند. فراخوانی aria2.tellWaiting(0, 1) مقدار ["A"] را بازمیگرداند. فراخوانی aria2.tellWaiting(1, 2) مقدار ["B", "C"] را بازمیگرداند. فراخوانی aria2.tellWaiting(-1, 2) مقدار ["C", "B"] را بازمیگرداند.
پاسخ آرایهای از همان ساختارهایی است که توسط متد aria2.tellStatus() بازگردانده میشوند.
- aria2.tellStopped([secret], offset, num[, keys])
- این متد
فهرستی از
دانلودهای
متوقفشده
را
بازمیگرداند.
پارامتر offset
یک عدد صحیح
است و فاصله
(offset) را از
قدیمیترین
دانلود
متوقفشده
مشخص
میکند.
پارامتر num
یک عدد صحیح
است و
حداکثر
تعداد
دانلودهایی
را که باید
بازگردانده
شوند تعیین
میکند.
برای
پارامتر
keys، لطفاً
به متد aria2.tellStatus()
مراجعه
کنید.
پارامترهای offset و num دارای همان مفاهیمی هستند که در متد aria2.tellWaiting() توضیح داده شد.
پاسخ آرایهای از همان ساختارهایی است که توسط متد aria2.tellStatus() بازگردانده میشوند.
- aria2.changePosition([secret], gid, pos, how)
- این متد
موقعیت
دانلودی را
که با gid
مشخص شده
است در صف
تغییر
میدهد. pos
یک عدد صحیح
است. how یک
رشته است.
اگر how
برابر با POS_SET
باشد،
دانلود را
به موقعیتی
نسبت به
ابتدای صف
منتقل
میکند. اگر
how برابر با
POS_CUR باشد،
دانلود را
به موقعیتی
نسبت به
موقعیت
فعلی
جابهجا
میکند. اگر
how برابر با
POS_END باشد،
دانلود را
به موقعیتی
نسبت به
انتهای صف
منتقل
میکند. اگر
موقعیت
مقصد کمتر
از ۰ یا
فراتر از
انتهای صف
باشد،
دانلود را
به ترتیب به
ابتدای صف
یا انتهای
صف منتقل
میکند.
پاسخ یک عدد
صحیح است که
موقعیت
نهایی
حاصلشده
را نشان
میدهد.
برای مثال، اگر GID#2089b05ecca3d829 در حال حاضر در موقعیت ۳ باشد، فراخوانی aria2.changePosition('2089b05ecca3d829', -1, 'POS_CUR') موقعیت آن را به ۲ تغییر میدهد. علاوه بر این، فراخوانی aria2.changePosition('2089b05ecca3d829', 0, 'POS_SET') موقعیت آن را به ۰ (ابتدای صف) تغییر خواهد داد.
مثالهای زیر دانلود با شناسه GID#2089b05ecca3d829 را به ابتدای صف منتقل میکنند.
نمونه JSON-RPC (JSON-RPC Example)
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.changePosition',
... 'params':['2089b05ecca3d829', 0, 'POS_SET']})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer', u'jsonrpc': u'2.0', u'result': 0}
نمونه XML-RPC (XML-RPC Example)
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> s.aria2.changePosition('2089b05ecca3d829', 0, 'POS_SET')
0
- aria2.changeUri([secret], gid, fileIndex, delUris, addUris[, position])
- این متد
نشانیهای
وب موجود در
delUris را حذف
کرده و
نشانیهای
موجود در addUris
را به
دانلود
مشخصشده
توسط gid
اضافه
میکند. delUris و
addUris
لیستهایی
از رشتهها
هستند. یک
دانلود
میتواند
شامل چندین
فایل باشد و
نشانیهای
وب به هر
فایل پیوست
میشوند. از
fileIndex برای
انتخاب
فایلی که
قرار است
نشانیهای
دادهشده
از آن حذف
یا به آن
افزوده
شوند
استفاده
میشود.
مقدار fileIndex
مبتنی بر ۱
(1-based) است. از position
برای تعیین
مکانی که
نشانیها
در لیست
نشانیهای
منتظر درج
میشوند
استفاده
میشود.
مقدار position
مبتنی بر ۰
(0-based) است.
هنگامی که
position مشخص
نشود،
نشانیها
به انتهای
لیست اضافه
میشوند.
این متد
ابتدا
عملیات حذف
و سپس
عملیات
افزودن را
انجام
میدهد. position
موقعیت پس
از حذف
نشانیها
است، نه
موقعیت در
هنگام
فراخوانی
متد. در
هنگام حذف
نشانی، اگر
نشانیهای
یکسانی در
دانلود
وجود داشته
باشد، به
ازای هر
نشانی
موجود در delUris
تنها یکی از
آنها حذف
میشود. به
عبارت
دیگر، اگر
سه نشانی
http://example.org/aria2 وجود
دارد و
میخواهید
همه آنها
را حذف
کنید، باید
(حداقل) ۳
بار http://example.org/aria2 را
در delUris مشخص
کنید. این
متد لیستی
شامل دو عدد
صحیح
بازمیگرداند؛
عدد صحیح
اول تعداد
نشانیهای
حذفشده و
عدد صحیح
دوم تعداد
نشانیهای
اضافهشده
است.
مثالهای زیر نشانی http://example.org/file را به فایلی که اندیس آن 1 است و به دانلود GID#2089b05ecca3d829 تعلق دارد اضافه میکنند.
نمونه JSON-RPC (JSON-RPC Example)
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.changeUri',
... 'params':['2089b05ecca3d829', 1, [],
['http://example.org/file']]})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer', u'jsonrpc': u'2.0', u'result': [0, 1]}
نمونه XML-RPC (XML-RPC Example)
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> s.aria2.changeUri('2089b05ecca3d829', 1, [],
['http://example.org/file'])
[0, 1]
- aria2.getOption([secret], gid)
- این متد
گزینههای
دانلودی را
که با gid
مشخص شده
است
بازمیگرداند.
پاسخ یک
ساختار (struct)
است که در
آن کلیدها
نام
گزینهها
هستند.
مقادیر از
نوع رشته
میباشند.
توجه داشته
باشید که
این متد
گزینههایی
را که مقدار
پیشفرضی
ندارند و در
خط فرمان،
فایلهای
پیکربندی
یا متدهای RPC
تنظیم
نشدهاند
بازنمیگرداند.
مثالهای زیر گزینههای دانلود GID#2089b05ecca3d829 را دریافت میکنند.
نمونه JSON-RPC (JSON-RPC Example)
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.getOption',
... 'params':['2089b05ecca3d829']})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer',
u'jsonrpc': u'2.0',
u'result': {u'allow-overwrite': u'false',
u'allow-piece-length-change': u'false',
u'always-resume': u'true',
u'async-dns': u'true',
...
نمونه XML-RPC (XML-RPC Example)
>>> import xmlrpclib
>>> from pprint import pprint
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> r = s.aria2.getOption('2089b05ecca3d829')
>>> pprint(r)
{'allow-overwrite': 'false',
'allow-piece-length-change': 'false',
'always-resume': 'true',
'async-dns': 'true',
....
- aria2.changeOption([secret], gid, options)
- این متد گزینههای دانلودی را که با gid (رشته) مشخص شده است بهصورت پویا تغییر میدهد. options یک ساختار (struct) است. گزینههای ذکرشده در زیربخش Input File در دسترس هستند، بهجز گزینههای زیر:
- dry-run
- metalink-base-uri
- parameterized-uri
- pause
- piece-length
- rpc-save-upload-metadata
بهجز گزینههای زیر، تغییر دادن سایر گزینههای یک دانلود فعال باعث راهاندازی مجدد آن میشود (راهاندازی مجدد توسط خود aria2 مدیریت میشود و نیازی به دخالت کاربر نیست):
- bt-max-peers
- bt-request-peer-speed-limit
- bt-remove-unselected-file
- force-save
- max-download-limit
- max-upload-limit
این متد در صورت موفقیت مقدار OK را بازمیگرداند.
مثالهای زیر گزینه max-download-limit را برای دانلود GID#2089b05ecca3d829 روی مقدار 20K تنظیم میکنند.
نمونه JSON-RPC (JSON-RPC Example)
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.changeOption',
... 'params':['2089b05ecca3d829',
... {'max-download-limit':'10K'}]})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer', u'jsonrpc': u'2.0', u'result': u'OK'}
نمونه XML-RPC (XML-RPC Example)
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> s.aria2.changeOption('2089b05ecca3d829', {'max-download-limit':'20K'})
'OK'
- aria2.getGlobalOption([secret])
- این متد گزینههای سراسری را بازمیگرداند. پاسخ یک ساختار (struct) است. کلیدهای آن نام گزینهها هستند و مقادیر از نوع رشته میباشند. توجه داشته باشید که این متد گزینههایی را که مقدار پیشفرضی ندارند و در خط فرمان، فایلهای پیکربندی یا متدهای RPC تنظیم نشدهاند برنمیگرداند. از آنجا که گزینههای سراسری بهعنوان قالبی برای گزینههای دانلودهای تازه اضافهشده به کار میروند، پاسخ شامل کلیدهایی است که توسط متد aria2.getOption() نیز بازگردانده میشوند.
- aria2.changeGlobalOption([secret], options)
- این متد گزینههای سراسری را بهصورت پویا تغییر میدهد. options یک ساختار (struct) است. گزینههای زیر در دسترس هستند:
- bt-max-open-files
- download-result
- keep-unfinished-download-result
- log
- log-level
- max-concurrent-downloads
- max-download-result
- max-overall-download-limit
- max-overall-upload-limit
- optimize-concurrent-downloads
- save-cookies
- save-session
- server-stat-of
علاوه بر این، گزینههای ذکرشده در زیربخش Input File نیز در دسترس هستند، بهجز گزینههای زیر: checksum, index-out, out, pause و select-file.
با استفاده از گزینه log، میتوانید ثبت لاگ را بهصورت پویا آغاز کنید یا فایل لاگ را تغییر دهید. برای توقف ثبت لاگ، یک رشته خالی ("") را بهعنوان مقدار پارامتر تعیین کنید. توجه داشته باشید که فایل لاگ همیشه در حالت الحاق (append mode) باز میشود. این متد در صورت موفقیت مقدار OK را بازمیگرداند.
- aria2.getGlobalStat([secret])
- این متد آمار و وضعیت سراسری مانند سرعت کلی دانلود و آپلود را بازمیگرداند. پاسخ یک ساختار (struct) است و شامل کلیدهای زیر میباشد. مقادیر از نوع رشته هستند.
- downloadSpeed
- سرعت کلی دانلود (بایت بر ثانیه).
- uploadSpeed
- سرعت کلی آپلود (بایت بر ثانیه).
- numActive
- تعداد دانلودهای فعال.
- numWaiting
- تعداد دانلودهای در صف انتظار.
- numStopped
- تعداد دانلودهای متوقفشده در نشست جاری. این مقدار توسط گزینه --max-download-result محدود میشود.
- numStoppedTotal
- تعداد دانلودهای متوقفشده در نشست جاری که با گزینه --max-download-result محدود نمیشود.
نمونه JSON-RPC (JSON-RPC Example)
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.getGlobalStat'})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer',
u'jsonrpc': u'2.0',
u'result': {u'downloadSpeed': u'21846',
u'numActive': u'2',
u'numStopped': u'0',
u'numWaiting': u'0',
u'uploadSpeed': u'0'}}
نمونه XML-RPC (XML-RPC Example)
>>> import xmlrpclib
>>> from pprint import pprint
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> r = s.aria2.getGlobalStat()
>>> pprint(r)
{'downloadSpeed': '23136',
'numActive': '2',
'numStopped': '0',
'numWaiting': '0',
'uploadSpeed': '0'}
- aria2.purgeDownloadResult([secret])
- این متد دانلودهای تکمیلشده، دارای خطا یا حذفشده را برای آزادسازی حافظه پاکسازی میکند. این متد مقدار OK را بازمیگرداند.
- aria2.removeDownloadResult([secret], gid)
- این متد
نتیجه یک
دانلود
تکمیلشده،
دارای خطا
یا حذفشده
را که با gid
مشخص شده
است از
حافظه حذف
میکند. این
متد در صورت
موفقیت
مقدار OK را
بازمیگرداند.
مثالهای زیر نتیجه دانلود مربوط به شناسه GID#2089b05ecca3d829 را حذف میکنند.
نمونه JSON-RPC (JSON-RPC Example)
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.removeDownloadResult',
... 'params':['2089b05ecca3d829']})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer', u'jsonrpc': u'2.0', u'result': u'OK'}
نمونه XML-RPC (XML-RPC Example)
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> s.aria2.removeDownloadResult('2089b05ecca3d829')
'OK'
- aria2.getVersion([secret])
- این متد نگارش aria2 و فهرست ویژگیهای فعالشده را بازمیگرداند. پاسخ یک ساختار (struct) است و شامل کلیدهای زیر میباشد.
- version
- شماره نگارش aria2 بهصورت یک رشته.
- enabledFeatures
- فهرست ویژگیهای فعالشده. هر ویژگی بهصورت یک رشته ارائه میشود.
نمونه JSON-RPC (JSON-RPC Example)
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.getVersion'})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer',
u'jsonrpc': u'2.0',
u'result': {u'enabledFeatures': [u'Async DNS',
u'BitTorrent',
u'Firefox3 Cookie',
u'GZip',
u'HTTPS',
u'Message Digest',
u'Metalink',
u'XML-RPC'],
u'version': u'1.11.0'}}
نمونه XML-RPC (XML-RPC Example)
>>> import xmlrpclib
>>> from pprint import pprint
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> r = s.aria2.getVersion()
>>> pprint(r)
{'enabledFeatures': ['Async DNS',
'BitTorrent',
'Firefox3 Cookie',
'GZip',
'HTTPS',
'Message Digest',
'Metalink',
'XML-RPC'],
'version': '1.11.0'}
- aria2.getSessionInfo([secret])
- این متد اطلاعات نشست را بازمیگرداند. پاسخ یک ساختار (struct) است و شامل کلید زیر میباشد.
- sessionId
- شناسه نشست (Session ID)، که هر بار با فراخوانی و اجرای aria2 تولید میشود.
نمونه JSON-RPC (JSON-RPC Example)
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.getSessionInfo'})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer',
u'jsonrpc': u'2.0',
u'result': {u'sessionId': u'cd6a3bc6a1de28eb5bfa181e5f6b916d44af31a9'}}
نمونه XML-RPC (XML-RPC Example)
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> s.aria2.getSessionInfo()
{'sessionId': 'cd6a3bc6a1de28eb5bfa181e5f6b916d44af31a9'}
- aria2.shutdown([secret])
- این متد برنامه aria2 را خاموش و متوقف میکند. این متد مقدار OK را بازمیگرداند.
- aria2.forceShutdown([secret])
- این متد aria2() را خاموش و متوقف میکند. این متد رفتاری مشابه با :func:'aria2.shutdown` دارد با این تفاوت که بدون انجام اقدامات زمانبر (مانند تماس با تراکرهای بیتتورنت برای لغو ثبت دانلودها پیش از خروج) عمل میکند. این متد مقدار OK را بازمیگرداند.
- aria2.saveSession([secret])
- این متد نشست فعلی را در فایلی که توسط گزینه --save-session مشخص شده است ذخیره میکند. این متد در صورت موفقیت مقدار OK را بازمیگرداند.
- system.multicall(methods)
- این متد
چندین
فراخوانی
متد را در
قالب یک
درخواست
کپسولهسازی
میکند. methods
آرایهای
از
ساختارها (structs)
است. این
ساختارها
شامل دو
کلید هستند:
methodName و params. کلید
methodName نام متد
مورد نظر
برای
فراخوانی
است و params
آرایهای
حاوی
پارامترهای
فراخوانی
متد
میباشد.
این متد
آرایهای
از پاسخها
را
بازمیگرداند.
عناصر این
آرایه یا یک
آرایه
تکعضوی
شامل مقدار
بازگشتی
فراخوانی
متد خواهند
بود، یا در
صورتی که
یکی از
فراخوانیهای
کپسولهشده
ناموفق
باشد،
ساختاری از
عنصر خطا (fault element)
خواهند بود.
در مثالهای زیر، ۲ دانلود اضافه میکنیم. مورد اول http://example.org/file و مورد دوم file.torrent است.
نمونه JSON-RPC (JSON-RPC Example)
>>> import urllib2, json, base64
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'system.multicall',
... 'params':[[{'methodName':'aria2.addUri',
... 'params':[['http://example.org']]},
... {'methodName':'aria2.addTorrent',
... 'params':[base64.b64encode(open('file.torrent').read())]}]]})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer', u'jsonrpc': u'2.0', u'result': [[u'2089b05ecca3d829'], [u'd2703803b52216d1']]}
سیستم JSON-RPC علاوه بر این از درخواستهای دستهای (Batch requests) مطابق با مشخصات JSON-RPC 2.0 پشتیبانی میکند:
>>> jsonreq = json.dumps([{'jsonrpc':'2.0', 'id':'qwer',
... 'method':'aria2.addUri',
... 'params':[['http://example.org']]},
... {'jsonrpc':'2.0', 'id':'asdf',
... 'method':'aria2.addTorrent',
... 'params':[base64.b64encode(open('file.torrent').read())]}])
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
[{u'id': u'qwer', u'jsonrpc': u'2.0', u'result': u'2089b05ecca3d829'},
{u'id': u'asdf', u'jsonrpc': u'2.0', u'result': u'd2703803b52216d1'}]
نمونه XML-RPC (XML-RPC Example)
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> mc = xmlrpclib.MultiCall(s)
>>> mc.aria2.addUri(['http://example.org/file'])
>>> mc.aria2.addTorrent(xmlrpclib.Binary(open('file.torrent', mode='rb').read()))
>>> r = mc()
>>> tuple(r)
('2089b05ecca3d829', 'd2703803b52216d1')
- system.listMethods()
- این متد
تمام
متدهای RPC در
دسترس را در
قالب یک
آرایه از
رشتهها
بازمیگرداند.
برخلاف
متدهای
دیگر، این
متد نیازی
به توکن
امنیتی (secret token)
ندارد. این
متد کاملاً
ایمن است
زیرا صرفاً
نام متدهای
موجود را
بازمیگرداند.
نمونه JSON-RPC (JSON-RPC Example)
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'system.listMethods'})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer',
u'jsonrpc': u'2.0',
u'result': [u'aria2.addUri',
u'aria2.addTorrent',
...
نمونه XML-RPC (XML-RPC Example)
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> s.system.listMethods()
['aria2.addUri', 'aria2.addTorrent', ...
- system.listNotifications()
- این متد
تمام
اعلانهای
RPC موجود را
در قالب یک
آرایه از
رشتهها
بازمیگرداند.
برخلاف
متدهای
دیگر، این
متد نیازی
به توکن
امنیتی (secret token)
ندارد. این
متد کاملاً
ایمن است
زیرا صرفاً
نام
اعلانهای
موجود را
بازمیگرداند.
نمونه JSON-RPC (JSON-RPC Example)
>>> import urllib2, json
>>> from pprint import pprint
>>> jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer',
... 'method':'system.listNotifications'})
>>> c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq)
>>> pprint(json.loads(c.read()))
{u'id': u'qwer',
u'jsonrpc': u'2.0',
u'result': [u'aria2.onDownloadStart',
u'aria2.onDownloadPause',
...
نمونه XML-RPC (XML-RPC Example)
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> s.system.listNotifications()
['aria2.onDownloadStart', 'aria2.onDownloadPause', ...
مدیریت خطا (Error Handling)
در بستر JSON-RPC، برنامه aria2 یک شیء JSON بازمیگرداند که شامل کد خطا در فیلد code و پیام خطا در فیلد message است.
در بستر XML-RPC، برنامه aria2 مقدار faultCode=1 و پیام خطا را در فیلد faultString بازمیگرداند.
گزینهها (Options)
همان گزینههای موجود برای --input-file در دسترس هستند. برای مشاهده فهرست کامل گزینهها به زیربخش Input File مراجعه کنید.
در ساختار گزینه (option struct)، عنصر name نام گزینه (بدون پیشوند --) و عنصر value آرگومان مورد نظر بهصورت یک رشته است.
نمونه JSON-RPC (JSON-RPC Example)
{'split':'1', 'http-proxy':'http://proxy/'}
نمونه XML-RPC (XML-RPC Example)
<struct>
<member>
<name>split</name>
<value><string>1</string></value>
</member>
<member>
<name>http-proxy</name>
<value><string>http://proxy/</string></value>
</member>
</struct>
گزینههای header و index-out چندین بار در خط فرمان مجاز هستند. از آنجا که نام در یک ساختار (struct) باید یکتا باشد (بسیاری از پیادهسازیهای کتابخانه XML-RPC از یک درهمسازی/هش یا دیکشنری برای struct استفاده میکنند)، یک رشته تکی کافی نیست. برای غلبه بر این محدودیت، میتوانید علاوه بر رشته، از یک آرایه نیز بهعنوان مقدار استفاده کنید.
نمونه JSON-RPC (JSON-RPC Example)
{'header':['Accept-Language: ja', 'Accept-Charset: utf-8']}
نمونه XML-RPC (XML-RPC Example)
<struct>
<member>
<name>header</name>
<value>
<array>
<data>
<value><string>Accept-Language: ja</string></value>
<value><string>Accept-Charset: utf-8</string></value>
</data>
</array>
</value>
</member>
</struct>
مثال زیر یک دانلود را با دو گزینه اضافه میکند: dir و header. گزینه header نیازمند دو مقدار است، بنابراین از یک لیست استفاده میکند:
>>> import xmlrpclib
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
>>> opts = dict(dir='/tmp',
... header=['Accept-Language: ja',
... 'Accept-Charset: utf-8'])
>>> s.aria2.addUri(['http://example.org/file'], opts)
'1'
استفاده از JSON-RPC از طریق HTTP GET (JSON-RPC using HTTP GET)
رابط JSON-RPC همچنین از درخواستها از طریق HTTP GET پشتیبانی میکند. طرحواره کدگذاری در پارامترهای GET بر اساس مشخصات JSON-RPC over HTTP Specification [2008-1-15(RC1)] است. کدگذاری پارامترهای GET به شرح زیر است:
/jsonrpc?method=METHOD_NAME&id=ID¶ms=BASE64_ENCODED_PARAMS
پارامترهای method و id همیشه بهعنوان رشته JSON در نظر گرفته میشوند و کدگذاری آنها باید UTF-8 باشد.
برای مثال، رشته کدگذاریشده aria2.tellStatus('2089b05ecca3d829') همراه با id='foo' به شکل زیر است:
/jsonrpc?method=aria2.tellStatus&id=foo¶ms=WyIyMDg5YjA1ZWNjYTNkODI5Il0%3D
پارامتر params یک آرایه JSON کدگذاریشده با Base64 است که معمولاً در ویژگی params در شیء درخواست JSON-RPC ظاهر میشود. در مثال بالا، params برابر با ["2089b05ecca3d829"] است، بنابراین:
["2089b05ecca3d829"] --(Base64)--> WyIyMDg5YjA1ZWNjYTNkODI5Il0=
--(Percent Encode)--> WyIyMDg5YjA1ZWNjYTNkODI5Il0%3D
رابط JSON-RPC همچنین از JSONP پشتیبانی میکند. میتوانید تابع بازخوانی (callback) را در پارامتر jsoncallback مشخص کنید:
/jsonrpc?method=aria2.tellStatus&id=foo¶ms=WyIyMDg5YjA1ZWNjYTNkODI5Il0%3D&jsoncallback=cb
برای درخواستهای دستهای (Batch requests)، پارامترهای method و id نباید مشخص شوند. کل درخواست باید در پارامتر params تعیین شود. برای مثال، یک درخواست دستهای:
[{'jsonrpc':'2.0', 'id':'qwer', 'method':'aria2.getVersion'},
{'jsonrpc':'2.0', 'id':'asdf', 'method':'aria2.tellActive'}]
باید به این صورت کدگذاری شود:
/jsonrpc?params=W3sianNvbnJwYyI6ICIyLjAiLCAiaWQiOiAicXdlciIsICJtZXRob2QiOiAiYXJpYTIuZ2V0VmVyc2lvbiJ9LCB7Impzb25ycGMiOiAiMi4wIiwgImlkIjogImFzZGYiLCAibWV0aG9kIjogImFyaWEyLnRlbGxBY3RpdmUifV0%3D
JSON-RPC روی وبسوکت (JSON-RPC over WebSocket)
پروتکل JSON-RPC روی وبسوکت (WebSocket) از همان امضاهای متد و قالب پاسخ JSON-RPC روی HTTP استفاده میکند. نگارش وبسوکت پشتیبانیشده 13 است که در RFC 6455 به تفصیل شرح داده شده است.
برای ارسال یک درخواست RPC به کارساز (سرور) RPC، یک رشته JSON سریالشده را در یک فریم متنی (Text frame) ارسال کنید. پاسخ کارساز RPC نیز در یک فریم متنی تحویل داده میشود.
اعلانها (Notifications)
کارساز (سرور) RPC ممکن است اعلانهایی را برای کلاینت ارسال کند. اعلانها یکطرفه هستند، بنابراین کلاینتی که اعلان را دریافت میکند نباید به آن پاسخی دهد. امضای متد یک اعلان بسیار شبیه به یک درخواست متد معمولی است اما فاقد کلید id میباشد. مقدار کلید params همان دادهای است که این اعلان به همراه دارد. قالب مقدار بسته به متد اعلان متفاوت است. متدهای اعلان زیر تعریف شدهاند:
- aria2.onDownloadStart(event)
- این اعلان زمانی که یک دانلود آغاز شود ارسال میگردد. آرگومان event از نوع ساختار (struct) است و شامل کلیدهای زیر میباشد. نوع مقدار رشته است.
- gid
- شناسه GID دانلود مربوطه.
- aria2.onDownloadPause(event)
- این اعلان زمانی که یک دانلود متوقف موقت (pause) شود ارسال میگردد. آرگومان event همان ساختاری است که در آرگومان event در متد aria2.onDownloadStart() وجود دارد.
- aria2.onDownloadStop(event)
- این اعلان زمانی که یک دانلود توسط کاربر متوقف شود ارسال میگردد. آرگومان event همان ساختاری است که در آرگومان event در متد aria2.onDownloadStart() وجود دارد.
- aria2.onDownloadComplete(event)
- این اعلان زمانی که یک دانلود کامل شود ارسال میگردد. برای دانلودهای بیتتورنت، این اعلان پس از اتمام دانلود و پایان بذردهی (seeding) ارسال میشود. آرگومان event همان ساختاری است که در آرگومان event در متد aria2.onDownloadStart() وجود دارد.
- aria2.onDownloadError(event)
- این اعلان هنگامی که یک دانلود به دلیل بروز خطا متوقف شود ارسال میگردد. آرگومان event همان ساختاری است که در آرگومان event در متد aria2.onDownloadStart() وجود دارد.
- aria2.onBtDownloadComplete(event)
- این اعلان زمانی ارسال میشود که دانلود یک تورنت کامل شده باشد اما بذردهی (seeding) همچنان در حال انجام باشد. آرگومان event همان ساختاری است که در آرگومان event در متد aria2.onDownloadStart() وجود دارد.
نمونه کد کلاینت XML-RPC (Sample XML-RPC Client Code)
اسکریپت روبی (Ruby) زیر فایل http://localhost/aria2.tar.bz2 را به برنامه aria2c (در حال اجرا روی localhost) با گزینه --dir=/downloads اضافه کرده و پاسخ RPC را چاپ میکند:
#!/usr/bin/env ruby
require 'xmlrpc/client'
require 'pp'
client=XMLRPC::Client.new2("http://localhost:6800/rpc")
options={ "dir" => "/downloads" }
result=client.call("aria2.addUri", [ "http://localhost/aria2.tar.bz2" ], options)
pp result
اگر از علاقهمندان به پایتون (Python) هستید، میتوانید از xmlrpclib (پایتون ۳ در عوض از xmlrpc.client استفاده میکند) برای تعامل با aria2 استفاده کنید:
import xmlrpclib
from pprint import pprint
s = xmlrpclib.ServerProxy("http://localhost:6800/rpc")
r = s.aria2.addUri(["http://localhost/aria2.tar.bz2"], {"dir":"/downloads"})
pprint(r)
متفرقه (MISC)
خوانش کنسول (Console Readout)
هنگام دانلود پروندهها، aria2 برای نمایش پیشرفت دانلودها اطلاعاتی را در کنسول چاپ میکند. خروجی کنسول به این صورت است:
[#2089b0 400.0KiB/33.2MiB(1%) CN:1 DL:115.7KiB ETA:4m51s]
این بخش معنای این اعداد و رشتهها را شرح میدهد.
- #NNNNNN
- ۶ نویسه نخست GID بهصورت یک رشته هگزادسیمال (hex). شناسه GID یک شناسه یکتا برای هر دانلود و داخلی برای aria2 است. GID بهویژه هنگام تعامل با aria2 با استفاده از رابط RPC بسیار سودمند است.
- X/Y(Z%)
- حجم دانلودشده، حجم کل پرونده و درصد پیشرفت آن. اگر گزینه --select-file به کار رفته باشد، این مقدار مجموع پروندههای انتخابشده است.
- SEED
- نسبت اشتراکگذاری (share ratio) هنگامی که aria2 در حال سید کردن یک تورنت پایانیافته است.
- CN
- تعداد اتصالهایی که aria2 برقرار کرده است.
- SD
- تعداد سیدرهایی که aria2 به آنها متصل است.
- DL
- سرعت دانلود (بایت بر ثانیه).
- UL
- سرعت آپلود (بایت بر ثانیه) و حجم بایتهای آپلودشده.
- ETA
- زمان تخمینی باقیمانده تا پایان دانلود.
هنگامی که بیش از یک دانلود در حال انجام است، برخی از اطلاعات شرح داده شده در بالا به منظور نمایش اطلاعات چندین دانلود حذف میشوند. همچنین سرعت کلی دانلود و آپلود در ابتدای خط نمایش داده میشود.
هنگامی که aria2 در حال تخصیص فضای پرونده یا اعتبارسنجی جمعهای کنترلی (checksums) است، علاوه بر این، پیشرفت این عملیات را چاپ میکند:
مثالها (EXAMPLE)
دانلودهای چندبخشی HTTP/FTP
دانلود یک پرونده
$ aria2c "http://host/file.zip"
نکته:
دانلود یک پرونده از دو سرور HTTP متفاوت
$ aria2c "http://host/file.zip" "http://mirror/file.zip"
دانلود یک پرونده از یک هاست با استفاده از چند اتصال
$ aria2c -x2 -k1M "http://host/file.zip"
نکته:
دانلود همزمان یک پرونده از سرورهای HTTP و FTP
$ aria2c "http://host1/file.zip" "ftp://host2/file.zip"
دانلود همزمان پروندههای فهرستشده در یک فایل متنی
$ aria2c -ifiles.txt -j2
نکته:
استفاده از پروکسی
برای HTTP:
$ aria2c --http-proxy="http://proxy:8080" "http://host/file"
$ aria2c --http-proxy="http://proxy:8080" --no-proxy="localhost,127.0.0.1,192.168.0.0/16" "http://host/file"
برای FTP:
$ aria2c --ftp-proxy="http://proxy:8080" "ftp://host/file"
نکته:
استفاده از پروکسی همراه با احراز هویت
$ aria2c --http-proxy="http://username:password@proxy:8080" "http://host/file"
$ aria2c --http-proxy="http://proxy:8080" --http-proxy-user="username" --http-proxy-passwd="password" "http://host/file"
دانلود متالینک (Metalink)
دانلود پروندهها با متالینک از راه دور
$ aria2c --follow-metalink=mem "http://host/file.metalink"
دانلود با استفاده از یک پرونده متالینک محلی
$ aria2c -p --lowest-speed-limit=4000 file.metalink
نکته:
دانلود همزمان چند پرونده متالینک محلی
$ aria2c -j2 file1.metalink file2.metalink
تنها دانلود پروندههای انتخابشده
$ aria2c --select-file=1-4,8 file.metalink
نکته:
دانلود پرونده با استفاده از پرونده متالینک محلی بر اساس اولویت کاربر
$ aria2c --metalink-location=jp,us --metalink-version=1.1 --metalink-language=en-US file.metalink
دانلود بیتتورنت (BitTorrent)
دانلود پروندهها با استفاده از پرونده بیتتورنت از راه دور
$ aria2c --follow-torrent=mem "http://host/file.torrent"
دانلود با استفاده از یک پرونده تورنت محلی
$ aria2c --max-upload-limit=40K file.torrent
نکته:
نکته:
دانلود با استفاده از نشانی مغناطیسی (Magnet URI) بیتتورنت
$ aria2c "magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C&dn=aria2"
نکته:
دانلود ۲ تورنت
$ aria2c -j2 file1.torrent file2.torrent
دانلود موازی یک پرونده از طریق تورنت و سرور HTTP/FTP
$ aria2c -Ttest.torrent "http://host1/file" "ftp://host2/file"
تنها دانلود پروندههای خاص (معمولاً موسوم به "دانلود انتخابی")
$ aria2c --select-file=1-4,8 file.torrent
نکته:
دانلود یک پرونده .torrent بدون دانلود محتوای تورنت
$ aria2c --follow-torrent=false "http://host/file.torrent"
تعیین نام پرونده خروجی
برای مشخص کردن نام پرونده خروجی در دانلودهای بیتتورنت، باید نمایه پرونده را در تورنت بدانید (به --show-files مراجعه کنید). برای مثال، خروجی به این صورت است:
idx|path/length ===+====================== 1|dist/base-2.6.18.iso |99.9MiB ---+---------------------- 2|dist/driver-2.6.18.iso |169.0MiB ---+----------------------
برای ذخیره 'dist/base-2.6.18.iso' در '/tmp/mydir/base.iso' و 'dist/driver-2.6.18.iso' در '/tmp/dir/driver.iso'، از دستور زیر استفاده کنید:
$ aria2c --dir=/tmp --index-out=1=mydir/base.iso --index-out=2=dir/driver.iso file.torrent
تغییر درگاههای شنود برای اتصالهای ورودی همتایان
$ aria2c --listen-port=7000-7001,8000 file.torrent
نکته:
تعیین شرایط توقف سید کردن پس از پایان دانلود تورنت
$ aria2c --seed-time=120 --seed-ratio=1.0 file.torrent
نکته:
محدود کردن سرعت آپلود
$ aria2c --max-upload-limit=100K file.torrent
فعالسازی DHT برای IPv4
$ aria2c --enable-dht --dht-listen-port=6881 file.torrent
نکته:
فعالسازی DHT برای IPv6
$ aria2c --enable-dht6 --dht-listen-port=6881 --dht-listen-addr6=YOUR_GLOBAL_UNICAST_IPV6_ADDR
نکته:
افزودن و حذف نشانیهای ردیاب (Tracker)
صرفنظر کردن از تمام نشانیهای اعلام ردیاب (announce URIs) تعریفشده در file.torrent و استفاده از http://tracker1/announce و http://tracker2/announce بهجای آنها:
$ aria2c --bt-exclude-tracker="*" --bt-tracker="http://tracker1/announce,http://tracker2/announce" file.torrent
قابلیتهای پیشرفتهتر HTTP
بارگذاری کوکیها
$ aria2c --load-cookies=cookies.txt "http://host/file.zip"
نکته:
از سرگیری دانلودی که توسط مرورگرهای وب یا سایر برنامهها آغاز شده
$ aria2c -c -s2 "http://host/partiallydownloadedfile.zip"
نکته:
احراز هویت با گواهی کلاینت برای SSL/TLS
یک پرونده PKCS12 را به این صورت تعیین کنید:
$ aria2c --certificate=/path/to/mycert.p12
نکته:
همچنین اگر پروندههای PEM پشتیبانی میشوند، از دستوری مشابه زیر استفاده کنید:
$ aria2c --certificate=/path/to/mycert.pem --private-key=/path/to/mykey.pem https://host/file
نکته:
اعتبارسنجی سرورهای SSL/TLS با استفاده از گواهیهای CA مشخصشده
$ aria2c --ca-certificate=/path/to/ca-certificates.crt --check-certificate https://host/file
نکته:
کنترل از راه دور (RPC)
رمزنگاری ترافیک RPC با SSL/TLS
مشخص کردن یک پرونده PKCS12 سرور:
$ aria2c --enable-rpc --rpc-certificate=/path/to/server.p12 --rpc-secure
نکته:
همچنین در صورتی که پروندههای PEM پشتیبانی میشوند (GnuTLS و OpenSSL)، پرونده گواهی سرور و کلید خصوصی را به روش زیر مشخص کنید:
$ aria2c --enable-rpc --rpc-certificate=/path/to/server.crt --rpc-private-key=/path/to/server.key --rpc-secure
و امکانات پیشرفتهتر
محدود کردن سرعت دانلود
برای هر دانلود:
$ aria2c --max-download-limit=100K file.metalink
سرعت کلی:
$ aria2c --max-overall-download-limit=100K file.metalink
ترمیم یک دانلود آسیبدیده
$ aria2c -V file.metalink
نکته:
قطع اتصال در صورتی که سرعت دانلود کمتر از حد مشخصشده باشد
$ aria2c --lowest-speed-limit=10K file.metalink
پشتیبانی از نشانیهای پارامتریک (Parameterized URI)
میتوانید مجموعهای از بخشها را مشخص کنید:
$ aria2c -P "http://{host1,host2,host3}/file.iso"
میتوانید یک توالی عددی مشخص کنید:
$ aria2c -Z -P "http://host/image[000-100].png"
نکته:
میتوانید شمارنده گام را مشخص کنید:
$ aria2c -Z -P "http://host/image[A-Z:2].png"
اعتبارسنجی جمعهای کنترلی (Checksums)
$ aria2c --checksum=sha-1=0192ba11326fe2298c8cb4de616f4d4140213837 http://example.org/file
دانلود همزمان تعداد دلخواهی نشانی، متالینک و تورنت
$ aria2c -j3 -Z "http://host/file1" file2.torrent file3.metalink
رمزنگاری بیتتورنت (BitTorrent Encryption)
رمزنگاری کل محموله با استفاده از ARC4 (مبهمسازی):
$ aria2c --bt-min-crypto-level=arc4 --bt-require-crypto=true file.torrent
همچنین ببینید (SEE ALSO)
وبگاه پروژه: https://aria2.github.io
صفحه اصلی متالینک: http://www.metalinker.org
قالب توصیف دانلود متالینک: RFC 5854
حق نشر (COPYRIGHT)
حق نشر (C) 2006, 2015 متعلق به Tatsuhiro Tsujikawa است.
این برنامه یک نرمافزار آزاد است؛ شما میتوانید آن را تحت شرایط «پروانه عمومی همگانی گنو» (GNU General Public License) طبق آنچه توسط «بنیاد نرمافزار آزاد» (Free Software Foundation) منتشر شده است، چه نسخه ۲ پروانه و چه (به انتخاب خودتان) هر نسخه بعدی آن، بازتوزیع کرده یا تغییر دهید.
این برنامه با این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی «قابل فروش بودن» یا «مناسب بودن برای یک هدف خاص». برای جزئیات بیشتر به «پروانه عمومی همگانی گنو» مراجعه کنید.
شما باید به همراه این برنامه یک نسخه از پروانه عمومی همگانی گنو را دریافت کرده باشید؛ در غیر این صورت، به نشانی زیر نامه بنویسید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
علاوه بر این، به عنوان یک استثنای خاص، دارندگان حق نشر اجازه میدهند تا بخشهایی از کد این برنامه با کتابخانه OpenSSL تحت شرایط خاصی که در هر پرونده مبدأ به صورت جداگانه شرح داده شده است پیوند داده شود و ترکیبهای پیوندیافته از جمله هر دوی آنها توزیع گردد. شما باید در مورد تمام کدهای استفادهشده به جز OpenSSL، در کلیه جنبهها از پروانه عمومی همگانی گنو تبعیت نمایید. اگر پرونده(ها) را با این استثنا تغییر دهید، میتوانید این استثنا را به نسخه خود از پرونده(ها) تعمیم دهید، اما ملزم به این کار نیستید. اگر مایل به انجام این کار نیستید، این بیانیه استثنا را از نسخه خود حذف کنید. چنانچه این بیانیه استثنا را از تمام پروندههای مبدأ در برنامه حذف کردید، آن را از اینجا نیز حذف کنید.
| November 15, 2023 | 1.37.0 |