رفتن به محتوای اصلی
iServer24 | ارائه‌کننده سرورهای ابری و اختصاصی
آموزش جامع استفاده از Wget برای دانلود فایل و کار با REST API در لینوکس

آموزش جامع استفاده از Wget برای دانلود فایل و کار با REST API در لینوکس

Wget ابزار خط فرمان لینوکس برای دانلود فایل و کار با REST API است که از ادامه دانلود، محدود کردن سرعت و اجرای پس‌زمینه پشتیبانی می‌کند و مناسب کاربران و توسعه‌دهندگان لینوکس است.

ابزار Wget یکی از پرکاربردترین دستورات خط فرمان در لینوکس است که برای دانلود فایل‌ها از اینترنت و همچنین ارتباط با REST API‌ها استفاده می‌شود. این ابزار از پروتکل‌های HTTP، HTTPS، FTP و FTPS پشتیبانی می‌کند و یکی از مزیت‌های اصلی آن، عملکرد پایدار در شبکه‌های کند یا ناپایدار است.

Wget در صورت قطع شدن دانلود، به‌صورت خودکار تلاش مجدد انجام می‌دهد و حتی می‌تواند دانلودهای نیمه‌کاره را بدون نیاز به شروع از ابتدا ادامه دهد. همین ویژگی‌ها باعث شده Wget به ابزاری قابل اعتماد برای مدیران سیستم، توسعه‌دهندگان و کاربران تازه‌کار لینوکس تبدیل شود.

در وب‌سایت دیدگاه، تلاش می‌کنیم ابزارهایی را معرفی کنیم که هم ساده باشند و هم در پروژه‌های واقعی به کار بیایند، و Wget دقیقاً یکی از همان ابزارهاست.


Wget فقط برای دانلود فایل نیست

برخلاف تصور بسیاری از کاربران، Wget فقط مخصوص دانلود فایل نیست. شما می‌توانید با استفاده از آن، بدون نصب ابزار اضافی مانند curl، درخواست‌های API از نوع GET، POST، PUT و DELETE ارسال کنید و هدرهای مختلف HTTP را مستقیماً از ترمینال مدیریت نمایید.


این آموزش برای چه کسانی مناسب است؟

این راهنما برای گروه‌های زیر طراحی شده است:

  • افرادی که می‌خواهند فایل‌ها را سریع و مطمئن دانلود کنند

  • مدیران سیستم که نیاز به دانلود خودکار، ادامه دانلود یا محدود کردن سرعت دارند

  • توسعه‌دهندگانی که می‌خواهند با REST API کار کنند

  • کاربرانی که به دنبال اسکریپت‌نویسی و اتوماسیون هستند

  • کسانی که با سرویس‌های ابری مانند DigitalOcean کار می‌کنند


نصب و پیش‌نیازها

بررسی نصب بودن Wget

در اغلب توزیع‌های لینوکس، Wget به‌صورت پیش‌فرض نصب است. برای بررسی کافی است در ترمینال بنویسید:

wget
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

اگر نصب نبود، در اوبونتو و دبیان می‌توانید با دستور زیر آن را نصب کنید:

sudo apt-get install wget
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

گزینه‌ها و فلگ‌های پرکاربرد Wget

Wget دارای فلگ‌های متنوعی است که کنترل کاملی روی دانلود و درخواست‌های HTTP به شما می‌دهد. مهم‌ترین آن‌ها عبارتند از:

  • -P مشخص کردن مسیر ذخیره فایل

  • -q اجرای دستور در حالت بی‌صدا

  • --show-progress نمایش فقط نوار پیشرفت

  • -c ادامه دانلود قطع‌شده

  • --limit-rate محدود کردن سرعت دانلود

  • -O ذخیره فایل با نام دلخواه

  • -i دانلود چند فایل از لیست

  • -b دانلود در پس‌زمینه

  • --tries تعیین تعداد تلاش مجدد

  • -T تعیین زمان timeout

  • --header افزودن هدر HTTP

  • --method تعیین نوع درخواست (POST، PUT، DELETE و …)

ترکیب درست این فلگ‌ها، Wget را به ابزاری قدرتمند برای سناریوهای واقعی تبدیل می‌کند.


دانلود فایل با Wget

دانلود ساده یک فایل

برای دانلود یک فایل، فقط کافی است آدرس آن را بعد از دستور wget وارد کنید:

wget https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

فایل به‌صورت پیش‌فرض در مسیر فعلی ذخیره می‌شود.


دانلود در مسیر دلخواه

اگر بخواهید فایل در پوشه خاصی ذخیره شود:

wget -P Downloads/ https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

دانلود بدون نمایش خروجی

برای اجرای بی‌صدا:

wget -q https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

اگر فقط نوار پیشرفت را می‌خواهید:

wget -q --show-progress https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

دانلود چند فایل به‌صورت همزمان

ابتدا یک فایل متنی بسازید و لینک‌ها را داخل آن قرار دهید، سپس:

wget -i links.txt -P Downloads/ -q --show-progress
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

محدود کردن سرعت دانلود

برای جلوگیری از اشغال کامل پهنای باند:

wget --limit-rate=200k https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

ادامه دانلود قطع‌شده

اگر دانلود نیمه‌کاره شد:

wget -c https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

دانلود در پس‌زمینه

برای اجرای دانلود بدون اشغال ترمینال:

wget -b https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

و بررسی وضعیت:

tail -f wget-log
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

کار با REST API با Wget

ارسال درخواست GET

برای پردازش و استخراج داده از پاسخ‌های JSON این درخواست‌ها، ابزار jq بسیار کاربردی است.

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

wget -qO- https://api.example.com/data
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

ارسال POST با داده JSON

5 خط
wget -qO- \
--method=post \
--header="Content-Type: application/json" \
--body-data='{"key":"value"}' \
https://api.example.com/create
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

ارسال PUT

4 خط
wget --method=put -qO- \
--header="Content-Type: application/json" \
--body-data='{"id":1,"name":"updated"}' \
https://api.example.com/update/1
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

ارسال DELETE

wget --method=delete -qO- https://api.example.com/delete/1
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

استفاده از هدر احراز هویت

3 خط
wget -qO- \
--header="Authorization: Bearer TOKEN" \
https://api.example.com/secure
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مقایسه Wget و curl

به‌طور خلاصه:

برای بررسی کامل‌تر curl به‌عنوان جایگزین، آموزش دانلود فایل‌ها با curl را نیز مطالعه کنید.

  • اگر تمرکز شما روی دانلود پایدار، ادامه دانلود و اجرای خودکار است → Wget

  • اگر با APIهای پیچیده، احراز هویت پیشرفته و HTTP/2 کار می‌کنید → curl

در بسیاری از پروژه‌ها، استفاده هم‌زمان از هر دو کاملاً منطقی است.


جمع‌بندی

Wget ابزاری ساده اما بسیار قدرتمند است که هم برای کاربران تازه‌کار و هم برای حرفه‌ای‌ها کاربرد دارد. از دانلود فایل‌های ساده گرفته تا تعامل با APIها و سرویس‌های ابری، همه را می‌توان با چند دستور در ترمینال مدیریت کرد.

در دیدگاه تلاش می‌کنیم آموزش‌هایی ارائه دهیم که هم عملی باشند و هم در پروژه‌های واقعی به کار بیایند، و Wget یکی از ابزارهایی است که دانستن آن برای هر کاربر لینوکس تقریباً ضروری است.

ترکیب Wget با اسکریپت‌های Bash امکان اتوماسیون دانلود و پردازش فایل‌ها را فراهم می‌کند.

زیرساخت ابری برای اجرای همین آموزش

سرور ابری ساعتی را برای Docker، Ubuntu و DevOps راه‌اندازی کنید — پرداخت به میزان مصرف یا ماهانه.

ادامه یادگیری:Docker·Ubuntu·VPS