نحوه دانلود فايل ها با cURL

۱۷ بازديد ۰ نظر

URL  كلاينت يا cURL ، يك كتابخانه و ابزار خط فرمان براي انتقال داده ها بين سيستم ها است. از بسياري از پروتكل ها پشتيباني مي كند و به طور پيش فرض روي بسياري از سيستم عامل هاي يونيكس مانند نصب ميباشد. به دليل در دسترس بودن به صورت عمومي ، براي زماني كه شما نياز به دانلود يك فايل در سيستم محلي خود داريد ، به خصوص در محيط سرور مجازي ، انتخاب خوبي است.

در اين آموزش ، از دستور curl براي دانلود يك فايل متني از سرور مجازي وب استفاده خواهيد كرد. شما محتويات آن را مشاهده خواهيد كرد ، آن را به صورت محلي ذخيره خواهيد كرد و به curl خواهيد گفت كه اگر فايل ها منتقل شده اند ، ريدايركت ها را دنبال كند.

دانلود فايل ها از طريق اينترنت مي تواند خطرناك باشد ، بنابراين مطمئن شويد كه از منابع معتبر دانلود مي كنيد.

مرحله 1 – گرفتن فايل هاي از راه دور

خارج از باكس ، بدون هيچ آرگومان خط فرمان ، دستور curl يك فايل را واكشي مي كند و محتواي آن را به خروجي استاندارد نشان مي دهد.

با دانلود فايل robots.txt بياييد آن را امتحان كنيم:

·                 $ curl https://www.digitalocean.com/robots.txt

محتواي فايل را در صفحه نمايش خواهيد ديد:

Output

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

 

به curl يك URL بدهيد و منبع را واكشي كرده و محتواي آن را نمايش مي دهد.

ذخيره فايل هاي از راه دور

واكشي يك فايل و نمايش محتواي آن كاملاً خوب است ، اما اگر بخواهيد فايل را در سيستم خود ذخيره كنيد چه مي كنيد؟

براي ذخيره فايل از راه دور در سيستم محلي خود ، با همان نام فايل سرور مجازي كه از آن دانلود مي كنيد ، آرگومان –remote-name را اضافه كنيد يا از گزينه -O استفاده كنيد:

  • $ curl -O https://www.digitalocean.com/robots.txt

فايل شما دانلود مي شود:

[secondary_label Output

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

Dload  Upload   Total   Spent    Left  Speed

100   286    0   286    0     0   5296      0 –:–:– –:–:– –:–:–  5296

 

curl به جاي نمايش محتويات فايل ، پيشرفت بر پايه متن را نشان مي دهد و فايل را به همان نام فايل راه دور ذخيره مي كند. با دستور cat مي توانيد موارد را بررسي كنيد:

  • $ cattxt

اين فايل شامل همان مطالبي است كه قبلاً مشاهده كرده ايد:

[secondary_label Output

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

 

اكنون بياييد به تعيين يك نام فايل براي فايل دانلود شده بپردازيم.

مرحله 2 – ذخيره فايل هاي از راه دور با نام فايل خاص

ممكن است قبلاً يك فايل محلي با همان نام فايل در سرور مجازي راه دور داشته باشيد.

براي جلوگيري از رونويسي مجدد فايل محلي خود به همين نام ، از آرگومان -o يا –output و به دنبال آن نام فايل محلي كه مي خواهيد محتوا را در آن ذخيره كنيد استفاده كنيد.

براي دانلود فايل از راه دور robots.txt در فايل do-bots.txt كه به صورت محلي نامگذاري شده است ، دستور زير را اجرا كنيد:

  • $ curl -o do-bots.txt https://www.digitalocean.com/robots.txt

بار ديگر نوار پيشرفت را مشاهده خواهيد كرد:

Output

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

Dload  Upload   Total   Spent    Left  Speed

100   286    0   286    0     0   6975      0 –:–:– –:–:– –:–:–  7150

 

اكنون براي نمايش محتويات do-bots.txt از دستور cat استفاده كنيد تا فايل مورد نظر را دانلود كنيد:

  • $ cat do-bots.txt

خروجي يكسان ميباشد:

Output

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

 

به طور پيش فرض ، curl تغيير مسيرها را دنبال نمي كند ، بنابراين هنگام انتقال فايل ها ، ممكن است آنچه انتظار داريد را دريافت نكنيد. بياييد ببينيم چگونه اين مشكل را برطرف كنيم.

مرحله 3 – دنبال كردن تغيير مسيرها

تاكنون همه مثالها شامل URL هاي كاملاً واجد شرايط هستند كه شامل پروتكل https: // هستند. اگر بخواهيد فايل robots.txt را گرفته و فقط www.example.com را مشخص كنيد ، هيچ خروجي نمي بينيد ، زيرا example درخواست هاي http: // را به https: // هدايت مي كند:

شما مي توانيد اين را با استفاده از پرچم -I تأييد كنيد ، كه عناوين درخواست را به جاي محتويات فايل نمايش مي دهد:

  • $ curl -I www.digitalocean.com

خروجي نشان مي دهد كه URL تغيير مسير داده است. خط اول خروجي به شما مي گويد كه جابه جا شده است و خط location مكان آن را به شما مي گويد:

[secondary_label Output

HTTP/1.1 301 Moved Permanently

Date: Wed, 26 Aug 2020 19:01:33 GMT

Connection: keep-alive

Cache-Control: max-age=3600

Expires: Wed, 26 Aug 2020 20:01:33 GMT

Location: https://www.digitalocean.com/robots.txt

cf-request-id: 04cdbea7a40000c5cc8d34d200000001

Server: cloudflare

CF-RAY: 5c8fcd52aea0c5cc-EWR

 

مي توانيد از curl براي درخواستي ديگر به صورت دستي استفاده كنيد ، يا مي توانيد از آرگومان –location يا -L استفاده كنيد كه به curl مي گويد هر زمان كه با يك تغيير مسير مواجه شد درخواست را به مكان جديد دوباره انجام دهد. آن را امتحان كنيد:

  • $ curl -L www.digitalocean.com/robots.txt

اين بار خروجي را مشاهده مي كنيد ، زيرا curl به دنبال تغيير مسير مي رود:

Output

User-agent: *

Sitemap: https://www.digitalocean.com/sitemap.xml

 

براي دانلود فايل در سيستم محلي خود مي توانيد آرگومان -L را با برخي از آرگومان هاي فوق الذكر تركيب كنيد:

  • $ curl -L -o do-bots.txt www.digitalocean.com/robots.txt

 

 

هشدار: بسياري از منابع آنلاين از شما مي خواهند كه براي دانلود اسكريپت ها و اجراي آنها از curl استفاده كنيد. قبل از اجراي اسكريپت هاي دانلود شده ، بهتر است محتواي آنها را بررسي كنيد. براي بررسي كد و اطمينان از چيزي كه مي خواهيد اجرا كنيد ، از دستور less استفاده كنيد.

 

نتيجه

curl به شما امكان مي دهد كه فايل ها را سربع از يك سيستم از راه دور دانلود كنيد.  Curl  از پروتكل هاي مختلف پشتيباني مي كند و همچنين مي تواند درخواست هاي وب پيچيده تري از جمله تعامل با API هاي از راه دور براي ارسال و دريافت داده ها را ايجاد كند.

با مشاهده صفحه دستي  man در مورد curl مي توانيد اطلاعات بيشتري كسب كنيد.

نحوه استفاده از Traefik به عنوان پروكسي معكوس براي كانتينرهاي Docker در اوبونتو 20.04

نحوه دانلود فايل ها با cURL

نحوه نصب و ايمن سازي Redis در Centos7

چگونه مي توان محيط JupyterLab را در اوبونتو 18.04 تنظيم كرد

نحوه نصب Webmin در Ubuntu 20.04

نحوه بازنويسي آدرس هاي اينترنتي با mod_rewrite براي Apache در اوبونتو 20.04

نحوه مديريت چندين سرور با دستورات Ad Hoc Ansible

چگونه مي توان REST API را با Prisma و PostgreSQL ساخت

نحوه ميزباني وب سايت با استفاده از Cloudflare و Nginx در اوبونتو 18.04

نحوه استفاده از Traefik به عنوان پروكسي معكوس براي كانتينرهاي Docker در Ubuntu 18.04

 

خريد vps – خريد سرور مجازي – خريد سرور – سرور هلند – فروش vps – سرور مجازي آمريكا – خريدvps – سرور مجازي هلند – فروش سرور مجازي – سرور آمريكا – vps – سرور مجازي انگليس – سرور مجازي آلمان – سرور مجازي كانادا – خريد vps آمريكا – خريد وي پي اس – سرور – خريد سرور مجازي هلند – vps خريد – سرور مجازي فرانسه – سرور مجازي هلند – خريد vps آمريكا – خريد سرور مجازي ارزان هلند – vps – خريد vps هلند – خريد سرور مجازي آمريكا – خريد vps فرانسه – تست vps – سرور مجازي تست – سرور مجازي ويندوز – ارزانترين vps – خريد وي پي اس – vps ارزان – 

 

تا كنون نظري ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در رویا بلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.