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

دانلود فایل در لینوکس با استفاده از curl

آنچه در مقاله می‌خوانید

Client URL یا همان cURL یک کتابخانه و ابزار خط فرمان برای انتقال داده بین سیستم‌ها است. این ابزار از پروتکل‌های متنوعی پشتیبانی می‌کند و معمولا به‌صورت پیش‌فرض روی بسیاری از سیستم‌عامل‌های شبه یونیکس نصب است. همین موضوع باعث شده cURL یکی از گزینه‌های بسیار مناسب برای دانلود فایل در VPS لینوکس و سیستم‌های سروری باشد.

در آموزش cURL در لینوکس شما یاد می‌گیرید چگونه از دستور cURL برای دریافت فایل متنی از یک وب‌سرور استفاده کنید. در این فرآیند می‌توانید محتوای فایل را مشاهده کنید، آن را روی سیستم خود ذخیره نمایید و در صورت وجود Redirect، تنظیم کنید که cURL به‌صورت خودکار آن را دنبال کند. این قابلیت‌ها در سناریوهایی مانند کار با REST APIها یا توسعه و راه‌اندازی برنامه‌های Node.js اهمیت زیادی دارند.

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

دانلود فایل در لینوکس با استفاده از curl

مرحله ۱. دریافت فایل‌های ریموت (Fetching remote files)

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

برای مثال، در استفاده از cURL در سرور مجازی می‌توان یک فایل متنی را از یک سرور دانلود کرد:

cURL https://example.com/robots.txt

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

User-agent: *
Disallow:
sitemap: https://example.com/sitemap.xml

به این صورت، cURL فقط داده را دریافت کرده و آن را بدون ذخیره‌سازی نمایش می‌دهد. این روش برای بررسی سریع محتوا یا تست APIها در آموزش cURL command بسیار کاربردی است.

مرحله ۲. ذخیره فایل از سرور با cURL (Saving Remote Files)

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

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

cURL -O https://example.com/robots.txt

در این حالت، فایل دانلود شده و با همان نام در سیستم ذخیره می‌شود.

cURL هنگام دانلود، یک نوار پیشرفت نمایش می‌دهد و پس از اتمام، فایل در همان مسیر ذخیره خواهد شد.

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

cat robots.txt

محتوای فایل دقیقا مشابه نسخه ریموت خواهد بود. این روش یکی از پایه‌ای‌ترین کاربردهای دستور cURL در لینوکس برای مدیریت فایل‌ها در سرور است.

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

در بسیاری از مواقع ممکن است بخواهید فایل را با نام متفاوت ذخیره کنید تا از بازنویسی فایل‌های موجود جلوگیری شود. در این حالت از گزینه -o استفاده می‌شود که یکی از مهم‌ترین بخش‌های دانلود فایل از سرور با cURL است:

cURL -o custom-name.txt https://example.com/robots.txt

در این حالت فایل با نام custom-name.txt ذخیره می‌شود.

پس از دانلود، می‌توان با دستور cat محتوای آن را بررسی کرد:

cat custom-name.txt

مرحله ۳. دنبال کردن ریدایرکت‌ها (Following Redirects)

در استفاده از cURL در لینوکس باید توجه داشت که cURL به‌صورت پیش‌فرض ریدایرکت‌ها را دنبال نمی‌کند. یعنی اگر یک آدرس به آدرس دیگری منتقل شده باشد، ممکن است خروجی دریافت نکنید.

برای بررسی هدرهای پاسخ از گزینه -I استفاده می‌شود:

cURL -I example.com/robots.txt

در خروجی، وضعیت Redirect نمایش داده می‌شود و مشخص می‌شود که درخواست به آدرس دیگری منتقل شده است.

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

cURL -L example.com/robots.txt

این قابلیت در استفاده از cURL در سرور بسیار مهم است، مخصوصا زمانی که با APIها یا آدرس‌های متغیر سروکار دارید.

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

cURL -L -o file.txt example.com/robots.txt

مرحله ۴. دانلود فایل با احراز هویت (Authentication)

در برخی سناریوها، فایل‌ها یا APIها نیاز به احراز هویت دارند. در این حالت آموزش cURL command شامل ارسال اطلاعات ورود می‌شود.

برای احراز هویت ساده (username/password):

cURL -u username:password -O https://example.com/file.zip

برای API Token:

cURL -H "Authorization: Bearer YOUR_TOKEN" -O https://api.example.com/data.json

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

مرحله ۵. مدیریت Timeout، Retry و Resume

در محیط‌های سروری، یکی از مهم‌ترین کاربردهای استفاده از cURL مدیریت خطاهای شبکه است.

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

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

این قابلیت‌ها در کار با cURL در سرور لینوکس برای اسکریپت‌نویسی بسیار مهم هستند.

مرحله ۶. اتوماسیون دانلود در VPS

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

مثال یک اسکریپت ساده:

#!/bin/bash
URL="https://example.com/file.zip"
DEST="/home/user/file.zip"
cURL -L -o "$DEST" "$URL"

این اسکریپت می‌تواند در کران جاب یا CI/CD اجرا شود و برای دانلود فایل از سرور با cURL به‌صورت خودکار استفاده شود.

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

در آموزش cURL command ممکن است با خطاهای مختلفی مواجه شوید:

بررسی دسترسی فایل:

cURL -I https://example.com/file.zip

تست User-Agent:

cURL -A "Mozilla/5.0" -O https://example.com/file.zip

دیباگ درخواست:

cURL -v -O https://example.com/file.zip

این ابزارها برای عیب‌یابی در دستور cURL در لینوکس بسیار کاربردی هستند.

مرحله ۸. جایگزین cURL (wget)

در برخی سناریوها ابزار wget نیز به‌عنوان جایگزین استفاده می‌شود، اما در اکثر موارد cURL برای دانلود فایل در VPS لینوکس انتخاب استانداردتری است.

دانلود ساده:

wget https://example.com/file.zip

دانلود با تلاش مجدد:

wget -t 3 https://example.com/file.zip

سوالات متداول 

1. تفاوت گزینه -O و -o در cURL چیست؟

در این مبحث یکی از مفاهیم مهم، تفاوت بین گزینه‌های -O و -o است.

گزینه -O (حرف O بزرگ) باعث می‌شود فایل دانلود شده با همان نام اصلی که روی سرور تعریف شده ذخیره شود. این حالت زمانی کاربرد دارد که بخواهید ساختار نام‌گذاری سرور را حفظ کنید یا چند فایل را بدون تعیین نام جداگانه دانلود کنید.

در مقابل، گزینه -o (حرف o کوچک) به شما اجازه می‌دهد یک نام دلخواه برای فایل دانلود شده مشخص کنید. این روش در دانلود فایل با cURL در لینوکس برای مدیریت بهتر فایل‌ها و جلوگیری از تداخل نام‌ها بسیار کاربردی است.

مثال:

cURL -O https://example.com/file.zip
cURL -o custom-name.zip https://example.com/file.zip

2. چگونه دانلود قطع‌شده را در cURL ادامه دهیم؟

در استفاده از cURL در لینوکس ممکن است دانلود به دلایل مختلفی مانند قطعی شبکه متوقف شود. برای ادامه دانلود از همان نقطه قبلی، از گزینه -C – استفاده می‌شود.

این قابلیت زمانی مفید است که با فایل‌های حجیم یا سرورهای ناپایدار کار می‌کنید.

مثال:

cURL -C - -O https://example.com/largefile.iso

3. آیا امکان دانلود فایل‌های نیازمند احراز هویت وجود دارد؟

بله، در آموزش cURL command می‌توان فایل‌هایی که نیاز به احراز هویت دارند را نیز دانلود کرد.

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

cURL -u username:password -O https://example.com/file.zip

برای استفاده از Token:

cURL -H "Authorization: Bearer YOUR_TOKEN" -O https://api.example.com/file.zip

در کار با cURL در سرور لینوکس بهتر است اطلاعات حساس را در کد هاردکد نکنید و از متغیرهای محیطی استفاده کنید.

4. اگر URL ریدایرکت داشته باشد چه باید کرد؟

در برخی موارد، لینک‌ها به آدرس دیگری منتقل می‌شوند. در حالت پیش‌فرض، دستور cURL در لینوکس ریدایرکت را دنبال نمی‌کند.

برای حل این مشکل از گزینه -L استفاده می‌شود:

cURL -L -O http://example.com/download

این قابلیت در دانلود فایل از سرور با cURL بسیار مهم است، مخصوصا در APIها و لینک‌های کوتاه‌شده.

5. آیا cURL روی ویندوز قابل استفاده است؟

بله، cURL در نسخه‌های جدید ویندوز (10 به بعد) به‌صورت پیش‌فرض وجود دارد و می‌توان آن را در CMD یا PowerShell استفاده کرد.

برای نسخه‌های قدیمی‌تر می‌توان از ابزارهایی مانند Git Bash یا Chocolatey استفاده کرد:

choco install cURL

این موضوع باعث می‌شود آموزش cURL command در محیط‌های مختلف قابل استفاده باشد.

6. چگونه چند فایل را همزمان با cURL دانلود کنیم؟

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

روش اول استفاده از چند URL:

cURL -O https://example.com/file1.zip -O https://example.com/file2.zip

روش دوم استفاده از الگو:

cURL -O https://example.com/file{1..5}.zip

همچنین می‌توان از فایل لیست URL نیز استفاده کرد.

7. خطاهای SSL در cURL چگونه رفع می‌شوند؟

گاهی هنگام دانلود فایل در استفاده از cURL در لینوکس ممکن است خطای SSL رخ دهد.

برای نادیده گرفتن بررسی SSL (فقط در حالت تست):

cURL -k -O https://example.com/file.zip

برای استفاده امن‌تر:

cURL --cacert /path/to/certificate.pem -O https://example.com/file.zip

8. چگونه سرعت و وضعیت دانلود را در cURL مشاهده کنیم؟

در استفاده از cURL در لینوکس می‌توان وضعیت دانلود را با گزینه‌های مختلف مشاهده کرد.

برای نمایش ساده:

cURL -# -O https://example.com/file.zip

برای نمایش جزئیات کامل:

cURL -w "\nDownloaded: %{size_download} bytes\nSpeed: %{speed_download} bytes/sec\nTime: %{time_total} seconds\n" -O https://example.com/file.zip

این قابلیت برای مانیتورینگ دانلود در سرور بسیار کاربردی است.

جمع‌بندی

در آموزش cURL در سرور مجازی لینوکس دیدیم که cURL یک ابزار قدرتمند برای دانلود سریع فایل از سیستم‌های ریموت است. این ابزار از پروتکل‌های متنوعی مانند HTTP، HTTPS، FTP و سایر پروتکل‌ها پشتیبانی می‌کند و همین موضوع آن را به گزینه‌ای قابل اعتماد و مناسب برای اسکریپت‌نویسی در محیط‌های سروری تبدیل کرده است.

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

cURL یکی از ابزارهای پایه برای توسعه‌دهندگان، مدیران سیستم و DevOps است که نیاز دارند کنترل دقیقی روی ارتباطات شبکه داشته باشند، بدون اینکه از ابزارهای سنگین و پیچیده استفاده کنند. چه در حال اتوماسیون وظایف در CI/CD باشید، چه در حال دریافت داده از سرویس‌های خارجی، یا تست APIها در REST یا Node.js، آموزش cURL command به‌طور مستقیم در جریان کاری شما قرار می‌گیرد.

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

man cURL

همچنین بررسی مثال‌های عملی و سناریوهای واقعی به شما کمک می‌کند تسلط بیشتری روی کار با cURL در سرور لینوکس پیدا کنید و از آن در پروژه‌های واقعی استفاده کنید.

امتیاز شما به این مطلب
دیدن نظرات
small

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

12 − 5 =

عضویت در خبرنامه مبین هاست
مطالب کدام دسته‌بندی‌ها برای شما جذاب‌تر است؟

آنچه در مقاله می‌خوانید

مقالات مرتبط
خدمات مبین هاست