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

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

در این مقاله، روش‌های استفاده از wget برای دانلود فایل‌ها و تعامل با REST API ها بررسی می‌شود. با نکات و دستورالعمل‌های کاربردی به شما کمک می‌کند تا به‌راحتی از wget برای مدیریت دانلودهای بزرگ و کار با API ها بهره‌برداری کنید.
0 株式
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

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

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

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

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 または --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 محدودیت دارد. برای متدهای 置くPATCH消去 یا فرم‌های multipart بهتر است از カール 使用。.

برای دانلود موازی یا تقسیم فایل از ابزارهایی مانند 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، نزدیک بودن به سرویس مقصد اهمیت دارد — شرکت مورد نظر امکان ارائه خدمات در ۸۵+ لوکیشن そうですよ。.

  • انتخاب لوکیشن: نزدیک‌ترین دیتاسنتر به مقصد را انتخاب کنید تا latency کاهش یابد.
  • دانلود مدل‌های AI و رندر: から -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 برای میزبانی فایل‌های پراستفاده استفاده نمایید.

 

結論

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

 

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

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

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

よくある質問

あなたも気に入るかもしれない