Как загрузить файл через curl

Обновлено: 06.07.2024

Команда curl

Перед тем как перейти к описанию того как может использоваться команда curl linux, давайте разберем саму утилиту и ее основные опции, которые нам понадобятся. Синтаксис утилиты очень прост:

$ curlопции ссылка

Теперь рассмотрим основные опции:

Это далеко не все параметры curl linux, но здесь перечислено все основное, что вам придется использовать.

Команда Curl для Работы с Файлами

Команды Curl могут загружать файлы из удалённой локации. Есть два способа это сделать:

  • -O сохранит файл в текущем рабочем каталоге с тем же именем, что и у удалённого;
  • -o позволяет указать другое имя файла или местоположение.

Приведённая выше команда сохранит файл как testfile.tar.gz.

А эта команда сохранит его как newtestfile.tar.gz.

Если по какой-либо причине загрузка будет прервана, вы можете возобновить её с помощью следующей команды:

Curl также позволяет загрузить несколько файлов одновременно. Пример:

Если вы хотите загрузить несколько файлов с нескольких URL, перечислите их все в файле. Команды Curl могут быть объединены с xargs для загрузки различных URL-адресов.

Например, если у нас есть файл allUrls.txt, который содержит список всех URL-адресов для загрузки, то приведённый ниже пример выполнит загрузку всех файлов с этих URL.

xargs –n 1 curl -O < allUrls.txt

В приведённом выше примере вы можете выбросить -U username:password, если прокси-сервер не требует метода аутентификации.

Пример ниже демонстрирует, как получить информацию о заголовке с веб-сайта.

Используя curl, вы можете сделать запрос GET и POST. Запрос GET будет выглядеть следующим образом:

А вот пример запроса POST:

Здесь text=Hello — это параметр запроса POST. Такое поведение похоже на HTML-формы.

Команда содержит запрос POST, за которым следует запрос GET.

Вы можете изменить дефолтную информацию об агенте пользователя, используя следующую команду:

Теперь вывод будет выглядеть так:

Команда Curl и Cookies

Вот пример такой команды:

Curl и FTP

Утилита поддерживает FTP! Вы можете использовать её для загрузки файлов с удалённого сервера.

curl -u username:password -O ftp://sampleftpserver/testfile.tar.gz

В приведённой выше команде ftp://sampleftpserver — это FTP-сервер, который принимает соединения. Вы можете не указывать имя пользователя и пароль для анонимных FTP-соединений. Введите команду и посмотрите, как заполняется индикатор выполнения.

Вы также можете загружать файлы с помощью этой команды:

curl -u username:password -T testfile.tar.gz ftp://sampleftpserver

Опять же таки, мы можем пропустить имя пользователя и пароль для анонимных FTP-соединений.

Ограничение Скорости Скачивания

Скачивая или загружая данные с помощью Curl, вы не можете знать, насколько большим будет вывод. Вы можете ограничить скорость скачивания, чтобы убедиться, что Curl не ограничивает пропускную способность канала.

Команда ниже ограничивает скорость скачивания до 100К:

Основной Синтаксис Команды Curl

Итак, давайте узнаем, как пользоваться утилитой. Основной синтаксис Curl выглядит следующим образом:

curl [OPTIONS] [URL]

Как пользоваться curl?

Мы рассмотрели все, что касается теории работы с утилитой curl, теперь пришло время перейти к практике, и рассмотреть примеры команды curl.

Загрузка файлов

Но тут вас ждет одна неожиданность, все содержимое файла будет отправлено на стандартный вывод. Чтобы записать его в какой-либо файл используйте:

А если вы хотите, чтобы полученный файл назывался так же, как и файл на сервере, используйте опцию -O:

Если загрузка была неожиданно прервана, вы можете ее возобновить:

Если нужно, одной командой можно скачать несколько файлов:

Данная команда скачает файл, только если он был изменен после 21 декабря 2017.

Ограничение скорости

Вы можете ограничить скорость загрузки до необходимого предела, чтобы не перегружать сеть с помощью опции -Y:

Здесь нужно указать количество килобайт в секунду, которые можно загружать. Также вы можете разорвать соединение если скорости недостаточно, для этого используйте опцию -Y:

Передача файлов

Загрузка файлов, это достаточно просто, но утилита позволяет выполнять и другие действия, например, отправку файлов на ftp сервер. Для этого существует опция -T:

В ответе утилита сообщит где вы можете найти загруженный файл.

Отправка данных POST

Вы можете отправлять не только файлы, но и любые данные методом POST. Напомню, что этот метод используется для отправки данных различных форм. Для отправки такого запроса используйте опцию -d. Для тестирования будем пользоваться тем же сервисом:

Если вас не устраивает такой вариант отправки, вы можете сделать вид, что отправили форму. Для этого есть опция -F:

Здесь мы передаем формой поле password, с типом обычный текст, точно так же вы можете передать несколько параметров.

Передача и прием куки

Куки или Cookie используются сайтами для хранения некой информации на стороне пользователя. Это может быть необходимо, например, для аутентификации. Вы можете принимать и передавать Cookie с помощью curl. Чтобы сохранить полученные Cookie в файл используйте опцию -c:

Передача и анализ заголовков

Не всегда нам обязательно нужно содержимое страницы. Иногда могут быть интересны только заголовки. Чтобы вывести только их есть опция -I:

Аутентификация curl

Использование прокси

Если вам нужно использовать прокси сервер для загрузки файлов, то это тоже очень просто. Достаточно задать адрес прокси сервера в опции -x:

Примеры использования cURL в PHP

GET запрос

POST запрос

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$html = curl_exec($ch);
curl_close($ch);

file_get_contents() так же умеет отправлять POST запросы:

PUT запрос

DELETE запрос

Скачивание файлов

Curl позволяет сохранить результат сразу в файл, указав указатель на открытый файл в параметре CURLOPT_FILE.

Отправка файлов на другой сервер

Отправка файлов осуществляется методом POST:

С PHP 5.5 такой метод загрузки файлов вызывает ошибку, поэтому следует применять CURLFile.

8 примеров использования cURL вместе с PHP

1. Проверяем доступность определённого веб сайта

Как узнать, доступен ли определённый веб сайт? cURL поможет ответить на данный вопрос. Данный скрипт можно использовать совместно с планировщиком для мониторинга сайта.

Замените URL в строке 3 на тот, который вам нужен. Скопируйте код на свою страницу, и станет известно, доступен ли указанный сайт.

2. Замена cURL для функции file_get_contents()

Функция file_get_contents() очень полезная, но на многих хостингах она отключена. С помощью cURL можно написать функцию, которая будет работать в точности как file_get_contents().

function file_get_contents_curl($url) $ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Устанавливаем параметр, чтобы curl возвращал данные, вместо того, чтобы выводить их в браузер.
curl_setopt($ch, CURLOPT_URL, $url);

$data = curl_exec($ch);
curl_close($ch);

3. Получаем последний статус Twitter

С помощью PHP и cURL очень просто получить статус определённого пользователя. Данную информацию можно выводить в блоге.

Использовать функцию очень просто:

4. Twitter: проверяем отношения между двумя пользователями

Если вам нужно узнать, читает ли ваши твиты определенный пользователь, то можно задействовать API Twitter. Данный скрипт выводит true, если два пользователя, указанные на строчках 17 и 18, находятся в дружеских отношениях на Twitter. В противном случае возвращается false.

function make_request($url) $ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
>

/* Получаем соответствие */
function get_match($regex,$content) preg_match($regex,$content,$matches);
return $matches[1];
>

5. Загружаем и сохраняем изображения со страницы с помощью cURL

Данная функция может быть очень полезна: задаем ей URL страницы и она сохраняет все изображения с нее на вашем сервере.

while ($i 6. Конвертируем валюту с помощью cURl и Google

Пересчет валюты достаточно простое дело, но курсы достаточно часто изменяются, поэтому приходится использовать сервисы, подобные Google, для получения текущих значений курса пересчета. Функция currency() получает 3 параметра: исходная валюта, целевая валюта и сумма.

7. Получаем информацию о размере файла с помощью cURL

Как определить размер определенного файла, расположенного на другом сервере? Поможет следующая функция. Она получает 3 параметра: URL файла, и (если требуется) имя пользователя и пароль.

$ok = curl_exec($ch);
curl_close($ch);
$head = ob_get_contents();
ob_end_clean();

8. Загрузка через FTP с помощью cURL

PHP имеет библиотеку FTP library, но также можно использовать cURL для загрузки файлов на FTP сервер. Вот рабочий пример:

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($ch);
curl_close($ch);

Совет: отправка информации в Google Analytics через API

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии, оценивать уроки и сохранять их в личном кабинете

Favorite

Добавить в избранное (1 оценок, среднее: 5,00 из 5)

5 основных примеров команды Curl

1. Проверьте URL

Одним из наиболее распространенных и простейших применений cURL печатает саму команду, а затем URL, который вы хотите проверить

Эта команда будет отображать содержимое URL на вашем терминале

2. Сохраните вывод URL в файл

Выход команды cURL может легко сохранить в файл, добавив опцию -o в команде, как показано ниже

3. Загрузка файлов с помощью Curl

Вы можете скачивать файлы при помощи Curl, путем добавления опции -o к команде. Он используется для сохранения файлов на локальном сервере с теми же именами, как и на удаленном сервере

Вы также можете загрузить файл с другим именем, добавив опцию -o к cURL.

cURL может быть также использован для загрузки нескольких файлов одновременно, как показано в приведенном ниже примере

Curl также можно использовать для загрузки файлов надежно через SSH с помощью следующей команды

Обратите внимание, что вы должны использовать полный путь к файлу, который требуется загрузить

5. Доступ к FTP-серверу

Чтобы получить доступ к FTP-серверу с помощью Curl, надо использовать следующую команду

Curl будет подключаться к FTP-серверу и выведет список всех файлов и каталогов в домашнем каталоге пользователя

Вы можете скачать файл с помощью FTP

и загрузить файл на сервер FTP

Вы можете проверить страницу Curl вручную, чтобы увидеть все доступные опции cURL и его функциональные возможности

5 основных примеров команды Curl

PS. Если вам понравился этот пост, пожалуйста поделитесь им с друзьями в социальных сетях с помощью кнопок ниже или просто оставьте комментарий. Благодарю.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

cURL (или client URL) – это библиотека и утилита командной строки для передачи данных между системами. Она поддерживает множество протоколов и часто по умолчанию установлена во многих Unix-подобных операционных системах. Благодаря своей общедоступности cURL – это отличный выбор для загрузки файлов в локальную систему, особенно в серверной среде.

В этом мануале вы научитесь использовать команду curl на примере загрузки текстового файла с веб-сервера. Вы узнаете, как просмотреть его содержимое, сохранить его локально и включить поддержку перенаправлений в curl, если файл был перемещен.

Загрузка файлов из интернета может быть опасной для системы процедурой, поэтому рекомендуем загружать файлы только из надежных источников.

1: Загрузка файлов из удаленных источников

Обычная команда curl (без каких-либо аргументов) извлечет файл и отобразит его содержимое в стандартном выводе.

Давайте попробуем загрузить файл robots.txt:

Вы увидите, что содержимое файла отображается на экране:

Предоставьте утилите curl URL-адрес, и она извлечет ресурс и отобразит его содержимое на вашем экране.

Сохранение загруженных файлов

Ваш файл будет скачан:

% 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:

Файл содержит именно то, что вы видели ранее на экране:

Теперь давайте посмотрим, как выбрать новое имя для загруженного файла.

2: Сохранение загруженного файла с новым именем

Предположим, у вас уже есть локальный файл с тем же именем, что и у файла, загружаемого с удаленного сервера.

К примеру, чтобы загрузить удаленный файл robots.txt в локальный файл do-bots.txt, введите следующую команду:

Вы снова увидите индикатор выполнения:

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 286 0 286 0 0 6975 0 --:--:-- --:--:-- --:--:-- 7150

Теперь используйте команду cat, чтобы отобразить содержимое файла do-bots.txt и убедиться, что это именно тот загруженный вами файл:

3: Поддержка перенаправлений

Вы можете проверить это с помощью флага -I, который отображает заголовки запроса, а не содержимое файла:

Выходные данные показывают, что URL-адрес был перенаправлен. Первая строка вывода сообщает, что он был перемещен, а строка Location сообщает, куда именно:

На этот раз вы увидите ожидаемый результат, поскольку curl поддерживает перенаправление:

Вы можете комбинировать аргумент -L с некоторыми из вышеупомянутых аргументов, чтобы загрузить файл в вашу локальную систему:

Важно! Многие онлайн-ресурсы предлагают использовать curl для загрузки скриптов и их выполнения. Однако прежде чем делать исполняемыми и запускать какие-либо загруженные скрипты, вы должны проверить их содержимое. Используйте команду less, чтобы проверить код и убедиться, что он не причинит вреда вашей системе.

Заключение

Утилита curl позволяет быстро загружать файлы из удаленной системы. Она поддерживает множество различных протоколов, а также может выполнять более сложные веб-запросы, включая взаимодействие с удаленными API-интерфейсами для отправки и получения данных.


В этом руководстве мы покажем вам, как работает программа Curl и как с ее помощью загружать файлы. Мы даже рассмотрим изящное приложение Curl с графическим интерфейсом!

Установка Curl

Хотя Curl, возможно, является одной из наиболее часто используемых программ во всем Linux, она не всегда предустановлена. В результате мы должны рассказать вам, как установить Curl, прежде чем продемонстрировать, как он работает.

Чтобы установить Curl на вашем Linux PC, откройте окно терминала, нажав Ctrl + Alt + T . После этого следуйте приведенным ниже инструкциям по установке, которые соответствуют используемой вами операционной системе.

Ubuntu

В Ubuntu установите Curl с помощью команды Apt.

Debian

В Debian заставьте Curl работать с Apt-get.

Arch Linux

Те, кто использует Arch Linux, могут установить Curl с Pacman.

Fedora

Если вы используете Fedora, вы можете установить Curl с помощью Dnf .

OpenSUSE

В OpenSUSE установите Curl с помощью команды Zypper .

sudo zypper install curl

Если вы новичок в Curl, начните с открытия терминала. Вы можете открыть окно терминала на рабочем столе Linux, нажав Ctrl + Alt + T комбинацию клавиш. Вы также можете найти «Терминал» в меню приложения.

В открытом окне терминала используйте команду man curl , чтобы просмотреть руководство по Curl. Прочтите его и ознакомьтесь с приложением. После этого следуйте приведенным ниже разделам, чтобы узнать, как загружать файлы с помощью Curl в терминал.

Скачивание одного файла

Загрузить один файл с помощью Curl очень просто. Для начала необходимо указать URL-адрес файла. Например, чтобы загрузить Ubuntu 20.04 LTS ISO, вы должны указать такой URL-адрес.

После указания удаленного URL-адреса файла, который вы хотите загрузить, вы должны выбрать место для загрузки. Чтобы указать место загрузки, добавьте символ > , за которым следует путь, по которому должен идти файл.

Например, чтобы указать вашему ISO-файлу Ubuntu 20.04 LTS загрузку в каталог «Downloads», вы должны добавить >

Как только команда получит URL-адрес удаленного файла и место для его сохранения, нажмите клавишу Enter, чтобы выполнить загрузку. Вскоре после этого вы увидите прогресс загрузки, а также скачивание вашего файла. Когда он будет завершен, откройте файловый менеджер Linux, чтобы получить доступ к вашему файлу.

Загрузка нескольких файлов из списка

Можно загрузить несколько файлов из списка в Curl, как и в Wget. Для этого начните с создания своего списка. Сначала с помощью сенсорной команды создайте пустой текстовый файл с именем «curl_downloads.txt».

Затем откройте текстовый файл curl_downloads.txt (расположенный в вашей домашней папке) с помощью вашего любимого текстового редактора. После этого вставьте ссылки на каждый файл, который хотите скачать.

Например, чтобы загрузить ISO-образ Ubuntu, ISO-образ Fedora и ISO-образ Debian, мой список curl_downloads.txt должен содержать следующий код.

Сохраните изменения в файле «curl_downloads.txt», используя функцию сохранения текстового редактора. Затем подайте его в команду Curl, чтобы загрузить все в списке. Обратите внимание, что мы используем xargs в сочетании с curl, чтобы можно было загружать несколько файлов.

Нажмите клавишу Enter, чтобы начать процесс загрузки. Пожалуйста, поймите, что при использовании команды xargs для загрузки нескольких файлов указать место загрузки невозможно. Ваши загрузки появятся в домашнем каталоге (/home/USERNAME/).

Если вам нравится идея Curl, но вы предпочитаете графический интерфейс для загрузки файлов, вы можете использовать приложение Curl GUI. Это бета-приложение, созданное еще в 2007 году, но оно по-прежнему работает в современных ОС Linux и добавляет удобный графический интерфейс в Curl.

Для начала необходимо установить программу. Программа представляет собой сценарий Perl, и для ее работы требуется пакет «perl-tk». Чтобы установить его, откройте окно терминала и введите команду ниже, соответствующую вашей ОС.

Затем создайте новый каталог в папке /opt/ с помощью mkdir .

Используйте команду CD, чтобы перейти в новую папку. Затем используйте wget для загрузки файла сценария.

Затем загрузите файл ярлыка и отметьте его исполняемым.

После установки приложения найдите «cURL GUI» в меню приложения и щелкните его, чтобы запустить приложение. Затем внутри приложения найдите текстовое поле вверху и вставьте в него ссылку для скачивания.

Вставив ссылку для скачивания, найдите «Выходной файл» и установите флажок. Затем введите имя выходного файла. Например, если вы загружаете ISO-образ Ubuntu, добавьте «/home/USERNAME/Downloads/ubuntu-20.04.2.0-desktop-amd64.iso» после «Вывод».

Нажмите «START curl», чтобы начать загрузку. Когда загрузка будет завершена, закройте приложение и откройте файловый менеджер Linux, чтобы получить доступ к загруженному файлу.

Читайте также: