رفتن به محتوای اصلی
دیدگاه کلود | ارائه‌کننده سرورهای ابری و اختصاصی
آموزش دانلود فایل‌ها با cURL

آموزش دانلود فایل‌ها با cURL

cURL یک ابزار خط فرمان سبک و قدرتمند برای دانلود فایل‌ها و ارتباط با سرورهاست که از پروتکل‌های متنوعی مانند HTTP، HTTPS، FTP و SFTP پشتیبانی می‌کند. با قابلیت‌هایی مثل دنبال کردن ریدایرکت‌ها، مدیریت احراز هویت، ادامه دانلود نیمه‌کاره و اسکریپت‌نویسی، cURL برای مدیران سرور و توسعه‌دهندگان، به‌ویژه در کار با APIها و پروژه‌های CI/CD، ابزاری حیاتی محسوب می‌شود.

مقدمه

cURL که مخفف Client URL است، یک ابزار خط فرمان و کتابخانه قدرتمند برای انتقال داده بین سیستم‌ها محسوب می‌شود. این ابزار از پروتکل‌های متنوعی مانند HTTP، HTTPS، FTP و SFTP پشتیبانی می‌کند و معمولاً به‌صورت پیش‌فرض روی اکثر سیستم‌عامل‌های شبه‌یونیکس نصب است. به همین دلیل، cURL یکی از بهترین گزینه‌ها برای دانلود فایل در محیط‌های سروری و اسکریپتی به‌شمار می‌رود.

در این آموزش از دیدگاه یاد می‌گیرید چگونه با استفاده از دستور curl فایل‌ها را دانلود کنید، آن‌ها را ذخیره نمایید، ریدایرکت‌ها را دنبال کنید و دانلودهای امن و قابل اطمینان انجام دهید. این مهارت به‌ویژه هنگام کار با APIها، CI/CD و پروژه‌های Node.js کاربرد فراوانی دارد.

نکته امنیتی: همیشه فایل‌ها را از منابع معتبر دانلود کنید و پیش از اجرای هر اسکریپتی، محتوای آن را بررسی نمایید.


مرحله اول: دریافت فایل از سرور

در ساده‌ترین حالت، دستور curl محتوای فایل را دریافت کرده و در خروجی ترمینال نمایش می‌دهد:

curl https://example.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

این دستور محتویات فایل را مستقیماً روی صفحه نمایش می‌دهد.


ذخیره فایل دانلود شده

برای ذخیره فایل با همان نام اصلی روی سیستم، از گزینه -O استفاده کنید:

curl -O https://example.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

در این حالت، فایل دانلود شده و نوار پیشرفت نمایش داده می‌شود.

برای ذخیره فایل با نام دلخواه، از گزینه -o استفاده می‌کنیم:

curl -o myfile.txt https://example.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مرحله دوم: دنبال کردن ریدایرکت‌ها

به‌صورت پیش‌فرض، cURL ریدایرکت‌ها را دنبال نمی‌کند. برای حل این موضوع از گزینه -L استفاده می‌شود:

curl -L https://example.com/file.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

این گزینه باعث می‌شود در صورت تغییر آدرس فایل، دانلود به‌درستی انجام شود.


مرحله سوم: دانلود فایل‌های محافظت‌شده

احراز هویت ساده (نام کاربری و رمز عبور)

curl -u username:password -O https://example.com/secure.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

احراز هویت توکنی

curl -H "Authorization: Bearer TOKEN" -O https://api.example.com/data.json
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

توصیه می‌شود اطلاعات حساس را داخل اسکریپت‌ها ذخیره نکنید و از متغیرهای محیطی استفاده نمایید.


مرحله چهارم: مدیریت وقفه و خطاها

ادامه دانلود نیمه‌کاره

curl -C - -O https://example.com/large.iso
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

تعیین محدودیت زمان

curl --max-time 30 -O https://example.com/file.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

تلاش مجدد در صورت خطا

curl --retry 3 -O https://example.com/file.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مرحله پنجم: خودکارسازی دانلودها

می‌توانید cURL را داخل اسکریپت‌های شل برای دانلود خودکار استفاده کنید:

4 خط
#!/bin/bash
URL="https://example.com/file.zip"
DEST="/home/user/file.zip"
curl -L -o "$DEST" "$URL"
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

این اسکریپت را می‌توان در cron یا فرآیندهای CI/CD اجرا کرد.


رفع مشکلات رایج

  • بررسی هدرها:

curl -I https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
  • فعال‌سازی خروجی جزئیات:

curl -v -O https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
  • مشکل SSL:

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

مقایسه cURL و wget

wget برای دانلودهای ساده و حجیم مناسب‌تر است، در حالی که cURL برای کار با APIها، ارسال هدرهای سفارشی و اسکریپت‌نویسی پیشرفته گزینه بهتری محسوب می‌شود.


جمع‌بندی

cURL ابزاری قدرتمند، سبک و انعطاف‌پذیر برای دانلود فایل و ارتباط با سرویس‌های تحت شبکه است. از دانلود ساده فایل گرفته تا تعامل پیچیده با APIها، cURL یکی از ابزارهای اصلی مدیران سرور و توسعه‌دهندگان حرفه‌ای به‌شمار می‌رود.

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

man curl


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

آموزش دانلود فایل با cURL در لینوکس

به‌روزرسانی: 27 می 2025

cURL (مخفف Client URL) یک ابزار خط فرمان و کتابخانه قدرتمند برای انتقال داده بین سیستم‌هاست. این ابزار از پروتکل‌های متعددی مانند HTTP، HTTPS، FTP و … پشتیبانی می‌کند و معمولاً به‌صورت پیش‌فرض روی اکثر سیستم‌عامل‌های شبه‌یونیکس نصب است. به‌دلیل در دسترس بودن و انعطاف‌پذیری بالا، cURL یکی از بهترین گزینه‌ها برای دانلود فایل‌ها در محیط‌های سروری محسوب می‌شود.

در این آموزش یاد می‌گیرید چگونه با استفاده از دستور curl یک فایل را از اینترنت دانلود کنید، محتوای آن را ببینید، با نام دلخواه ذخیره کنید، ریدایرکت‌ها را دنبال کنید و دانلودهای امن‌تر و پایدارتر داشته باشید. این دانش به‌ویژه هنگام کار با REST APIها، اسکریپت‌ها و پروژه‌های Node.js بسیار کاربردی است.

⚠️ هشدار امنیتی: دانلود فایل از اینترنت همیشه می‌تواند خطرناک باشد. فقط از منابع معتبر فایل دریافت کنید و قبل از اجرای هر اسکریپت، حتماً محتوای آن را بررسی کنید.


مرحله ۱ — دریافت فایل از سرور (Fetch)

اگر دستور curl را بدون هیچ گزینه‌ای اجرا کنید، فایل را دریافت کرده و محتوای آن را مستقیماً در خروجی ترمینال نمایش می‌دهد.

مثال: دریافت فایل robots.txt از وب‌سایت DigitalOcean:

curl https://www.digitalocean.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

خروجی:

7 خط
User-agent: *
Disallow:

sitemap: https://www.digitalocean.com/sitemap.xml
sitemap: https://www.digitalocean.com/community/main_sitemap.xml.gz
sitemap: https://www.digitalocean.com/community/questions_sitemap.xml.gz
sitemap: https://www.digitalocean.com/community/users_sitemap.xml.gz
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

ذخیره فایل روی سیستم (Saving Remote Files)

برای ذخیره فایل دانلودشده با همان نام اصلی روی سیستم، از گزینه -O یا --remote-name استفاده کنید:

curl -O https://www.digitalocean.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

در این حالت، به‌جای نمایش محتوا، یک نوار پیشرفت نمایش داده می‌شود و فایل ذخیره می‌گردد.

برای مشاهده فایل:

cat robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مرحله ۲ — ذخیره فایل با نام دلخواه

اگر نمی‌خواهید فایل با نام اصلی ذخیره شود یا از overwrite شدن فایل‌های قبلی جلوگیری کنید، از گزینه -o استفاده کنید:

curl -o do-bots.txt https://www.digitalocean.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

سپس بررسی فایل:

cat do-bots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مرحله ۳ — دنبال کردن ریدایرکت‌ها (Redirect)

به‌صورت پیش‌فرض، cURL ریدایرکت‌ها را دنبال نمی‌کند. برای مثال اگر آدرس از HTTP به HTTPS منتقل شود، باید از گزینه -L استفاده کنید.

بررسی هدرها:

curl -I www.digitalocean.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

برای دنبال کردن ریدایرکت:

curl -L www.digitalocean.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

ذخیره فایل همراه با ریدایرکت:

curl -L -o do-bots.txt www.digitalocean.com/robots.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مرحله ۴ — دانلود فایل با احراز هویت

احراز هویت ساده (نام کاربری و رمز عبور)

curl -u username:password -O https://example.com/securefile.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

احراز هویت توکنی (Bearer Token)

curl -H "Authorization: Bearer YOUR_TOKEN" -O https://api.example.com/protected/data.json
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

توصیه امنیتی: اطلاعات حساس را در اسکریپت‌ها هاردکد نکنید. از متغیرهای محیطی استفاده کنید.


مرحله ۵ — مدیریت قطع ارتباط، زمان انتظار و ادامه دانلود

ادامه دانلود نیمه‌کاره

curl -C - -O https://example.com/largefile.iso
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

تعیین حداکثر زمان دانلود

curl --max-time 30 -O https://example.com/file.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

تلاش مجدد در صورت خطا

curl --retry 3 -O https://example.com/file.txt
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مرحله ۶ — خودکارسازی دانلود با اسکریپت Shell

نمونه اسکریپت ساده:

4 خط
#!/bin/bash
URL="https://example.com/file.zip"
DEST="/home/user/downloads/file.zip"
curl -L -o "$DEST" "$URL"
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

سپس:

chmod +x script.sh
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

و می‌توانید آن را با cron زمان‌بندی کنید.


مرحله ۷ — رفع مشکلات رایج دانلود

بررسی هدرها

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

تنظیم User-Agent

curl -A "Mozilla/5.0" -O https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

بررسی خطاهای SSL

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

استفاده از HTTP به‌جای HTTPS (در صورت امکان)

curl -O http://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مرحله ۸ — استفاده از wget به‌عنوان جایگزین

دانلود ساده

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

قابلیت‌های مهم wget

  • تلاش مجدد خودکار:

wget -t 3 https://example.com/file.zip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
  • دانلود در پس‌زمینه:

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

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

  • wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://example.com
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    چه زمانی curl و چه زمانی wget؟

    • curl: تعامل با APIها، درخواست‌های پیچیده HTTP، اسکریپت‌نویسی حرفه‌ای

    • wget: دانلودهای ساده، دانلود بازگشتی، میرور سایت‌ها


    سوالات متداول (FAQ)

    تفاوت -O و -o در curl چیست؟

    • -O فایل را با نام اصلی ذخیره می‌کند.

    • -o امکان تعیین نام دلخواه را می‌دهد.

    ادامه دانلود قطع‌شده چگونه است؟

    curl -C - -O https://example.com/largefile.iso
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    آیا cURL روی ویندوز وجود دارد؟

    بله، از ویندوز 10 به بعد به‌صورت پیش‌فرض وجود دارد و همچنین از طریق Git Bash، Cygwin یا Chocolatey قابل نصب است.

    دانلود چند فایل هم‌زمان

    curl -O https://example.com/file1.zip -O https://example.com/file2.zip
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    یا:

    curl -O https://example.com/file{1..5}.zip
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    جمع‌بندی

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

    برای مطالعه بیشتر، راهنمای کامل را ببینید:

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

     

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