CodeGym /Kurslar /Docker SELF /`curl` və `wget` istifadə edərək faylların yüklənməsi

`curl` və `wget` istifadə edərək faylların yüklənməsi

Docker SELF
Səviyyə , Dərs
Mövcuddur

curlwget istifadə edərək faylların yüklənməsi

1. curl ilə tanışlıq

Sən heç vaxt müsahibədə internetdən fayl yükləməyini istəyiblər, amma sən ekran qarşısında oturub "necə edəcəyimi unutmuşam" deyərək durmuşsan? Bu gün biz curlwget istifadə etməyi öyrənəcəyik və bunlar şəbəkə məlumatları ilə işləmək üçün sənin daimi köməkçilərin olacaq.

Bu utilitlər veb-səhifələri yükləməyə, faylları yükləməyə, HTTP sorğularını göndərməyə, API ilə işləməyə və hətta avtomatlaşdırma skriptlərini icra etməyə imkan verir. Gəlin onların funksionallığını, üstünlüklərini və istifadə ssenarilərini nəzərdən keçirək.

curl — şəbəkə protokolları ilə məlumat ötürmək üçün bir terminal utilitidir. curl-un əsas gücü onun elastikliyindədir: 20-dən çox protokola dəstək (HTTP, HTTPS, FTP, SCP və hətta SMTP). Tərtibatçılar baxımından bu, internetlə işləmək üçün əla bir "isveç bıçağıdır".

curl-un əsas sintaksisi

curl [opsiyalar] URL

Sadə dillə desək, komandaya curl yazırsan, lazımi ünvanı göstərirsən — və nəticədən zövq alırsan. Gəlin bu prosesi nəzərdən keçirək.

Veb-səhifənin yüklənməsi

Təsəvvür edin ki, Google-un əsas səhifəsini yükləmək istədiniz. Bu belə edilir:

curl http://www.google.com

Ekranda səhifənin HTML kodunu görəcəksiniz. Əgər saytın strukturunu araşdırmaq və ya onunla bağlı bir şey avtomatlaşdırmaq istəyirsinizsə, bu kifayət qədər faydalıdır.

Məzmunu fayla saxlamaq

Əgər bu mətn axını sizi narahat edirsə, nəticəni fayla saxlamaq olar:

curl -o google.html http://www.google.com

-o (output) açarı curl-a çıxışı fayla yönləndirməyi istədiyimizi bildirir. İndi səhifənin HTML kodu google.html faylında saxlanıb. Gülməli bir şey istəyirsən? Faylı dostuna ver və de ki, “bütün interneti yüklədim”.

Faylın yüklənməsi

Təsəvvür edin ki, internetdən fayl yükləmək lazımdır (məsələn, hansısa .zip). Bunun öhdəsindən curl çox yaxşı gəlir:

curl -O http://example.com/file.zip

-o-dan fərqli olaraq, -O açarı faylı URL-də göstərilən orijinal adla saxlayır. Bu eyni mənbədən bir çox fayl yükləmək istədiyiniz zaman faydalıdır.

HTTP autentifikasiyası

Bəzən fayl və ya API resursa giriş login və parol ilə qorunur. Bu halda curl-dan -u açarı ilə istifadə edin:

curl -u istifadeciadi:parol http://example.com/private-data

Bu, xüsusilə bağlanmış API-lərlə işləmək üçün faydalıdır, məsələn, GitHub və ya Docker Registry.

API vasitəsilə yükləmə

curl-un ən sərin imkanlarından biri — API ilə işləməkdir. Məsələn, serverə sorğu göndərmək və JSON formatında məlumat almaq lazımdır:

curl -X GET "https://api.exchangerate-api.com/v4/latest/USD"

Burada -X açarı HTTP sorğusunun metodunu (GET, POST, DELETE və s.) göstərir. Xarici xidmətlərlə inteqrasiyanı avtomatlaşdırmaq üçün bu, əla vasitədir.


2. wget nədir?

Əgər curl İsveçrə bıçağıdırsa, wget buldozerdir. Onun əsas işi faylları yükləməkdir. curl ilə əsas fərqi bundadır ki, wget xüsusi olaraq böyük faylları etibarlı şəkildə yükləmək üçün yaradılıb, həmçinin yükləməni davam etdirməyi dəstəkləyir. Bu xüsusiyyət zəif internet bağlantısı zamanı çox faydalıdır.

wget komandalarının əsas sintaksisi

wget [opsiyalar] URL

Sadə fayl yükləmə

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

Bu komanda faylı yükləyəcək və onu orijinal adı ilə cari direktoriya daxilində saxlayacaq. Sadə və effektiv.

Başqa adla saxlamaq

Əgər faylın orijinal adı xoşunuza gəlmirsə, öz adınızı təyin edə bilərsiniz:

wget -O newfile.zip http://example.com/file.zip

Yükləməni davam etdirmək

Tutalım, böyük bir fayl yükləyirsiniz və qoşulma kəsilir. Problem deyil: sadəcə -c (continue) flag istifadə edin:

wget -c http://example.com/largefile.iso

wget yükləməni dayandığı yerdən davam etdirəcək. Həmçinin, bu bir neçə gündən sonra da işləyir, əgər server bu rejimi dəstəkləyirsə.

Bütün saytın yüklənməsi

Bəli, wget ilə tam saytı (və ya onun nüsxəsini) yükləmək mümkündür. Sadəcə --mirror opsiyasını istifadə edin:

wget --mirror http://example.com

Bu komanda saytın qovluq strukturunu saxlamaqla onu yükləyəcək. İndi sizin offline rejimdə istifadə üçün saytın "güzgüsü" var.


3. curlwget-in müqayisəsi

Funksiya curl wget
Çoxlu protokolu dəstəkləmə Bəli Yalnız HTTP/HTTPS və FTP
Yükləməni avtomatik bərpa etmə Xeyr (skriptlə mümkündür) Bəli
API ilə iş Bəli Xeyr
Faylların idarə edilməsinin sadəliyi Orta Mükəmməl
Bütün veb saytların yüklənməsi Xeyr Bəli

Ümumilikdə, əgər sizə API ilə işləmək və ya xüsusi bir şey lazımdırsa, curl-dan istifadə edin. Amma sizə sadəcə faylları yükləmək lazımdırsa — wget daha yaxşı seçim olacaq.


4. Praktiki tətbiq

Faylın yüklənməsi və işlənməsi

wget ilə mətn üzərində işləmə bacarıqlarımızı birləşdiririk:

wget -O data.txt http://example.com/data.txt
cat data.txt | grep "keyword" | awk '{print $2, $4}'

Burada faylı yüklədik, açar sözlə sətirləri filtr etdik və lazımlı sütunları çıxardıq.

API ilə iş

curl istifadə edərək valyuta məzənnələrini yükləyirik və lazım olan valyutanı tapırıq:

curl -s "https://api.exchangerate-api.com/v4/latest/USD" | grep "EUR"

Bu, valyuta mübadiləsi üçün avtomatlaşdırılmış bir sistem qurmaq istədiyinizdə faydalıdır.

Yeniləmələrin avtomatlaşdırılması

Təsəvvür edin, hər gün faylı yeniləmələrlə yükləməlisiniz. Budur sadə bir skript nümunəsi:

#!/bin/bash
wget -O updates.zip http://example.com/daily-updates.zip
unzip -o updates.zip -d /path/to/updates

Skripti saxlayırıq və onu cron-a əlavə edirik. İndi o, avtomatik olaraq yerinə yetiriləcək — xoşdur, elə deyilmi?


5. Ümumi səhvlər və xüsusiyyətlər

403 (Forbidden) səhvi:

Bu o zaman baş verir ki, server əlavə başlıqlar tələb edir (məs., User-Agent). Belə həll olunur:

curl -A "Mozilla/5.0" http://example.com

Yönləndirmələr:

Əgər server sizi başqa URL-yə yönləndirirsə, curl üçün -L flagını əlavə edin:

curl -L http://example.com

SSL səhvləri:

Bəzən wget ya da curl SSL haqqında şikayət edə bilər. Sertifikatın yoxlanmasını söndürə bilərsiniz (amma bu təhlükəsiz deyil!):

wget --no-check-certificate https://example.com
curl -k https://example.com

Bu güclü arsenal ilə siz terminalda interneti zəbt etməyə hazırsınız. İndi heç bir fayl və ya API sizdən qaça bilməz — yükləmə, işləmə və avtomatlaşdırma vaxtıdır!

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION