راهنمای جامع استفاده از Wget برای دانلود فایل‌ها و کار با REST APIها
بیاموزید که چگونه از wget برای دانلود فایل ها و تعامل با REST API ها استفاده کنید. این راهنمای کامل شامل مثال‌ها و نکات کاربردی است.

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

در این مقاله، روش‌های استفاده از wget برای دانلود فایل‌ها و تعامل با REST API ها بررسی می‌شود. با نکات و دستورالعمل‌های کاربردی به شما کمک می‌کند تا به‌راحتی از wget برای مدیریت دانلودهای بزرگ و کار با API ها بهره‌برداری کنید.
0 acciones
0
0
0
0

 

نصب و مقدمات

در بسیاری از توزیع‌های لینوکس، wget از پیش نصب شده است. در صورت نیاز به نصب می‌توانید از دستورهای زیر استفاده کنید. برای بررسی نسخه نیز از دستور wget --version بهره ببرید.

apt update
apt install -y wget

yum install -y wget

brew install wget

wget --version

 

دانلود پایه‌ای و مدیریت خروجی

برای دانلود فایل ساده از آدرس مشخص از wget استفاده کنید. می‌توانید نام فایل ذخیره شده را تغییر دهید یا خروجی verbose را کاهش دهید.

wget https://example.com/file.tar.gz

wget -O custom-name.tar.gz https://example.com/file.tar.gz

wget -q https://example.com/file.tar.gz
wget -nv https://example.com/file.tar.gz

wget -o /var/log/wget-download.log https://example.com/file.tar.gz

 

ادامه دانلود و فایل‌های بزرگ

برای دانلود فایل‌های حجیم یا در صورت قطع و وصل شبکه از گزینه -c برای resume استفاده کنید. همچنین کنترل سرعت و تعداد تلاش‌ها می‌تواند برای سرورهای اشتراکی مفید باشد.

wget -c https://example.com/large.iso

wget --limit-rate=1m https://example.com/large.iso

wget --tries=10 --timeout=30 --retry-connrefused https://example.com/large.iso

 

دانلود بازگشتی و mirror

برای دانلود بازگشتی یک مسیر یا ساخت mirror از سایت از گزینه‌های بازگشتی استفاده کنید. -np جلوگیری از صعود به مسیر والد را انجام می‌دهد و -k لینک‌ها را برای دسترسی محلی تبدیل می‌کند.

wget -r -np -k https://example.com/some/path/

wget --mirror -p --convert-links -P ./localdir https://example.com/

 

کار با REST APIها با wget

اگرچه rizo برای کار با APIها انعطاف‌پذیری بیشتری دارد، wget برای تعاملات ساده مانند GET و POST و ارسال هدرها کاربردی است. در ادامه نمونه‌های متداول آورده شده است.

ارسال هدرها (Headers)

برای اضافه کردن هدرهای دلخواه از گزینه --header Usar.

wget --header="X-API-Version: 2" --header="Accept: application/json" -O response.json "https://api.example.com/resource?id=10"

احراز هویت (Basic, Bearer token, Cookies)

نمونه‌های رایج احراز هویت با wget به شکل زیر هستند.

wget --http-user=USERNAME --http-password='PASSWORD' -O resp.json "https://api.example.com/secure"

wget --header="Authorization: Bearer YOUR_TOKEN" -O resp.json "https://api.example.com/protected"

wget --save-cookies cookies.txt --keep-session-cookies --post-data='username=me&password=secret' https://example.com/login
wget --load-cookies cookies.txt -O dashboard.html https://example.com/dashboard

ارسال JSON و POST

برای ارسال payload JSON می‌توانید از --post-data O --post-file استفاده کنید. برای payloadهای بزرگ توصیه می‌شود داده را در فایل قرار دهید.

wget --header="Content-Type: application/json" --post-data='{"name":"test","value":42}' -O resp.json "https://api.example.com/items"

echo '{"name":"big","value":123}' > payload.json
wget --header="Content-Type: application/json" --post-file=payload.json -O resp.json "https://api.example.com/items"

محدودیت‌ها و جایگزین‌ها

به خاطر داشته باشید که wget برای متدهای HTTP بجز GET و POST محدودیت دارد. برای متدهای PONER, PATCH, BORRAR یا فرم‌های multipart بهتر است از rizo Usar.

برای دانلود موازی یا تقسیم فایل از ابزارهایی مانند aria2 بهره ببرید.

 

اسکریپتینگ، retry و backoff

برای تعامل پایدار با APIها و مقابله با محدودیت نرخ، الگوریتم retry با exponential backoff مناسب است. نمونه اسکریپت bash ساده زیر قابل استفاده است.

#!/bin/bash
URL="https://api.example.com/data"
OUT="resp.json"
TOKEN="YOUR_TOKEN"

attempt=0
max=5
sleep_time=1

while [ $attempt -lt $max ]; do
  wget --header="Authorization: Bearer $TOKEN" -O "$OUT" "$URL"
  code=$?
  if [ $code -eq 0 ]; then
    echo "Success"
    exit 0
  fi
  attempt=$((attempt+1))
  echo "Attempt $attempt failed, sleeping $sleep_time"
  sleep $sleep_time
  sleep_time=$((sleep_time * 2))
done

exit 1

برای زمان‌بندی منظم دانلودها از cron یا systemd timers استفاده کنید تا روی سرورهای VPS یا ابری در لوکیشن‌های مختلف وظایف به صورت خودکار اجرا شوند.

 

پراکسی، TLS و گواهی‌نامه‌ها

اگر پشت پراکسی قرار دارید، wget از متغیرهای محیطی پشتیبانی می‌کند. برای کنترل تایید گواهی می‌توانید مسیر فایل CA را مشخص کنید.

export http_proxy="http://proxy.example:3128"
export https_proxy="http://proxy.example:3128"

گزینه‌های مربوط به گواهی:

  • --ca-certificate=/path/to/ca.pem
  • --no-check-certificate (استفاده نکنید مگر در محیط‌های تست)

 

نکات عملکردی برای سرورهای ابری و لوکیشن‌ها

انتخاب لوکیشن مناسب می‌تواند RTT و پینگ را کاهش دهد. برای کاربردهای حساس مانند ترید، گیمینگ، رندرینگ یا هوش مصنوعی با سرورهای GPU، نزدیک بودن به سرویس مقصد اهمیت دارد — شرکت مورد نظر امکان ارائه خدمات در ۸۵+ لوکیشن Sí, la tiene.

  • انتخاب لوکیشن: نزدیک‌ترین دیتاسنتر به مقصد را انتخاب کنید تا latency کاهش یابد.
  • دانلود مدل‌های AI و رندر: De -c برای resume و --limit-rate هنگام پردازش سنگین استفاده کنید.
  • امنیت شبکه: از سرورهای با حفاظت DDoS برای میزبانی فایل‌های پرترافیک بهره ببرید.
  • CDN و BGP: ترکیب wget برای تست نقطه‌به‌نقطه و CDN برای توزیع نهایی توصیه می‌شود.

مثال عملی دانلود مدل بزرگ روی سرور GPU:

wget -c https://models.example.com/large-model.tar.gz -O /mnt/nvme/models/large-model.tar.gz --limit-rate=5m --tries=20

 

مقایسه wget و curl و ابزارهای دیگر

خلاصه‌ای از مزایا و کاربرد هر ابزار:

  • wget: مناسب دانلود فایل‌ها، mirror کردن سایت، دانلود بازگشتی؛ ساده و مناسب اسکریپت‌ها.
  • curl: انعطاف‌پذیری بالا برای REST APIها، پشتیبانی کامل از متدهای HTTP و multipart.
  • aria2: دانلود موازی و چند کانکشن برای شتاب‌دهی دانلود.
  • rsync / scp: همگام‌سازی امن سرور به سرور (SSH/SFTP).

 

امنیت و بهترین شیوه‌ها

چند توصیه کلیدی برای استفاده امن از wget و مدیریت اسرار:

  • نگهداری توکن‌ها: فایل‌های حاوی توکن را محدود کنید و از secret manager استفاده کنید.
  • TLS: تایید گواهی را فعال نگه دارید و از --no-check-certificate تنها در تست استفاده کنید.
  • محدود کردن نرخ: برای جلوگیری از بلاک شدن از headerهای Rate-Limit و الگوریتم backoff استفاده کنید.
  • حفاظت شبکه: از سرورهای ضد DDoS و CDN برای میزبانی فایل‌های پراستفاده استفاده نمایید.

 

Conclusión

در پاسخ به پرسش اصلی، wget ابزاری ساده و پایدار برای دانلود فایل‌ها، mirror کردن و تعاملات پایه با REST APIها است. برای نیازهای پیچیده‌تر HTTP و تعاملات متنوع‌تر، rizo گزینه بهتری است. در محیط‌های ابری، انتخاب لوکیشن مناسب، استفاده از سرورهای دارای حفاظت و کانفیگ شبکه مناسب می‌تواند تجربه کاری را به‌طور چشمگیری بهبود بخشد.

 

اطلاعات پلن‌ها و پشتیبانی

پلن‌ها در بیش از ۸۵ لوکیشن جهانی در دسترس قرار دارند و برای کاربری‌های خاص مانند سرورهای GPU، سرورهای کم‌لاتنسی برای ترید، یا سرورهای مناسب گیم و میزبانی پرترافیک، گزینه‌های متفاوتی ارائه می‌شود.

برای مشاهده جزئیات پلن‌ها یا دریافت اطلاعات تکمیلی می‌توانید به پنل وب مراجعه کرده یا از طریق پشتیبانی اطلاعات بیشتری دریافت کنید.

Preguntas frecuentes

También te puede gustar

Cómo instalar IBSng en CentOS 6/7

Tutorial de instalación de IBSng en CentOS 6/7. En este artículo se proporciona un tutorial de instalación de IBSng en CentOS 6/7 para ayudarle…