آنچه در این مقاله میخوانید
آموزش استفاده از Wget برای دانلود فایلها و تعامل با REST API ها
۲۰ آذر ۱۴۰۴
Wget یک ابزار مانند خط فرمان (Command-line) در سیستمعاملهای مبتنی بر یونیکس و لینوکس است که امکان دانلود فایلها و تعامل با REST API ها را برای کاربران فراهم کند. همچنین یکی از ویژگیهای این ابزار این است که میتواند از پروتکلهای FTP , HTTPS , HTTP , FTPS به صورت کامل پشتیبانی کند.
یکی دیگر از قابلیتهای برجسته و بسیار مهم ابزار Wget، توانایی مدیریت شبکههای کند یا ناپایدار آن هم به راحتترین و صحیحترین روش است. در شرایطی که دانلود یک فایل با خطا مواجه شود، این ابزار بهصورت خودکار به تلاش ادامه میدهد تا زمانی که فایل شما به صورت کامل و صحیح دریافت شود. علاوه بر این مزیت، میتوانید دانلود فایلهایی که به هر دلیلی قطع یا کند شدهاند را بدون آنکه فرآیند دانلود را بار دیگر تکرار کنید آن را ادامه دهید.
با Wget، میتوانید بدون نصب برنامههای اضافهای، با REST API ها تعامل کنید، همچنین میتوانید درخواستهای HTTP از نوع:
- PUT
- POST
- GET
- DELETE
را همراه با هدرهایی به صورت تکی یا چندگانه مستقیما از طریق ترمینال ارسال کنید.
در ادامه، مجموعهای جامع از دستورهای کاربردی Wget ارائه خواهیم کرد تا بتوانید از این ابزار برای مدیریت دانلودها و تعامل با APIها بهصورت دقیق و عملی استفاده کنید.
همین الان، بدون کمترین پیچیدگی، سرور مجازی خودتون رو در کمتر از ۳۰ ثانیه، راهاندازی کنید.
✅ عملکرد پایدار ✅ ترافیک نامحدود ✅ هزینه بهصرفه
خرید سرور مجازی ابری
آنچه در ادامه خواهید خواند:
- دانلود فایلها با Wget
- تعامل با REST API، استفاده از Wget بهعنوان HTTP Client
- ساخت Droplet از طریق API
- دستورهای تکمیلی برای مدیریت دانلود
- ادغام Wget با اسکریپتنویسی شل
- جمعبندی
انتخاب cURL چیست؟ + نحوه دانلود فایل با cURL در سرور مجازی
cURL در سرور مجازی
دانلود فایلها با Wget
برای اینکه بتوانید با Wget فایلهایتان را دانلود کنید باید مراحل زیر را دنبال کنید.
1. دانلود ساده یک فایل
متداولترین کاربرد Wget دانلود مستقیم فایل از یک آدرس اینترنتی است.
wget https://example.com/file.zip
فایل دانلودشده در مسیر فعلی ذخیره میشود و جزئیات روند دانلود نمایش داده خواهد شد.

2. دانلود و تعیین نام دلخواه برای خروجی
برای ذخیره فایل با یک نام مشخص از روش زیر استفاده کنید:
wget -O myfile.zip https://example.com/file.zip
3. ادامه دانلود فایلهای قطعشده (Resume)
قابلیت بسیار مهم Wget برای مدیریت شبکههای ناپایدار ادامه روند دانلود برای فایلهای قطع شده است. برای استفاده از این مزیت از روش زیر استفاده کنید:
wget -c https://example.com/largefile.iso
این قابلیت برای دانلود فایلهای سنگین یا شبکههای با کیفیت پایین بسیار پر کاربرد خواهد بود.
4. محدود کردن سرعت دانلود
برای جلوگیری از مصرف کامل پهنای باند کد زیر را دنبال کنید:
wget --limit-rate=300k https://example.com/video.mp4
5. اجرای دانلود در پسزمینه
برای آزاد نگهداشتن ترمینال هنگام دانلود میتوانید:
wget -b https://example.com/bigbackup.tar.gz
را انجام دهید. نکته: لاگ فرآیند در فایل wget-log ذخیره میشود.

6. دانلود چند فایل با استفاده از لیست
برای این عمل ابتدا فایل متنی urls.txt شامل لینکها تهیه کنید:
https://example.com/file1.zip
https://example.com/file2.zip
https://example.com/file3.zip
سپس دستور زیر را اجرا کنید:
wget -i urls.txt
تعامل با REST API، استفاده از Wget بهعنوان HTTP Client
این ابزار تنها یک برنامه دانلود نیست و میتواند مانند cURL درخواستهای HTTP را بهصورت مستقیم ارسال کند. این توانایی برای محیطها یا سیستمهایی که ابزارهای اضافی نصب نشدهاند، کاربردی خواهد بود.
1. ارسال درخواست GET
برای اینکه بتوانید درخواست GET را ارسال کنید، بایستی دستور زیر را در خط فرمان وارد نمایید.
wget --method=GET https://api.example.com/users
برای ذخیره نتیجه در فایل:
wget -O users.json https://api.example.com/users
2. ارسال GET همراه با هدر (Authorization)
در زمان نیاز به ارسال GET همراه با هدر، از کد زیر استفاده کنید.
wget \
--method=GET \
--header="Authorization: Bearer YOUR_TOKEN" \
https://api.example.com/profile

3. ارسال درخواست POST همراه با JSON Body
برای ارسال درخواست POST با JSON Body بایستی از کد زیر بهرهبرداری کنید.
wget \
--method=POST \
--header="Content-Type: application/json" \
--body-data='{"username": "narges", "role": "writer"}' \
https://api.example.com/users
4. ارسال درخواست PUT
همچنین برای ارسال درخواست PUT دستور زیر را اجرا کنید.
wget \
--method=PUT \
--header="Content-Type: application/json" \
--body-data='{"role": "admin"}' \
https://api.example.com/users/12
5. ارسال درخواست DELETE
برای درخواست DELETE فرمان زیر را در ترمینال وارد کنید.
wget --method=DELETE https://api.example.com/users/12

ساخت Droplet از طریق API
برای یادگیری بهتر شما مثال زیر را بررسی خواهیم کرد. در مثال زیر، یک Droplet جدید از طریق API سرویس ابری ایجاد خواهیم کرد:
wget \
--method=POST \
--header="Content-Type: application/json" \
--header="Authorization: Bearer YOUR_TOKEN" \
--body-data='{
"name": "my-droplet",
"region": "fra1",
"size": "s-1vcpu-1gb",
"image": "ubuntu-24-04-x64"
}' \
https://api.digitalocean.com/v2/droplets
این دستور نشان میدهد که Wget میتواند برای انجام عملیات مدیریتی در سرویسهای ابری مورد استفاده قرار گیرد.
دستورهای تکمیلی برای مدیریت دانلود
برای مدیریت دانلود نیاز به دستوراتی خواهیم داشت تا روند دانلود را کامل و در بهینهسازی به ما کمک بسیار کند. لیارا در ادامه دستورات تکیملی را به شما ارائه خواهد داد تا بتوانید بدون هیچگونه سختی و دردسری روند مدیریت دانلود خود را تکمیل کنید.
برای تنظیم تعداد تلاشها در صورت بروز خطا
wget --tries=10 https://example.com/bigfile.iso

برای تلاش نامحدود شبکههای بسیار ضعیف
wget --tries=0 https://example.com/bigfile.iso
برای تنظیم زمان انقضای اتصال (Timeout)
wget --timeout=30 https://example.com/file.zip
ادغام Wget با اسکریپتنویسی شل
به دلیل قابلیت اجرا در حالت غیرتعاملی، Wget گزینهای مناسب برای اسکریپتنویسی خواهد بود.
به مثال زیر دقت کنید.
#!/bin/bash
DATE=$(date +%F)
wget -c --limit-rate=1m \
https://example.com/backup.tar.gz \
-O backup-$DATE.tar.gz
این اسکریپت، دانلود بکاپ را با محدودیت سرعت اجرا کرده و در صورت قطع شدن ارتباط، دانلود را ادامه میدهد.

جمعبندی
در مطالب بالا به این درک رسیدیم که Wget ابزاری قدرتمند و با قابلیت برای مدیریت دانلودها و ارسال درخواستهای HTTP در محیط خط فرمان است. پشتیبانی از پروتکلهای اصلی شبکه، قابلیت ادامه دانلودهای قطعشده، امکان اجرای وظایف در پسزمینه، محدودسازی پهنای باند و قابلیت ارسال درخواستهای API، این ابزار را به یک انتخاب مناسب برای توسعهدهندگان، مدیران سیستم و کاربران مبتدی تبدیل میکند.
امکان استفاده از Wget در اسکریپتهای شل، آن را به بخشی بسیار مهم از جعبهابزار هر کاربر لینوکس تبدیل کرده است. با استفاده از دستورهای بالا در این آموزش، میتوانید از Wget برای انجام عملیات دانلود استفاده کنید.