Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » CURL

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12

Открыть новую тему     Написать ответ в эту тему

ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
См. также: Ru.Board » Операционные системы » UNIX » UNIX Shell

Что умеет CURL:
DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. curl supports TLS certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies (SOCKS4, SOCKS5, HTTP and HTTPS), HTTP/2, HTTP/3, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, SCRAM-SHA, NTLM, Negotiate, Kerberos, Bearer tokens and AWS Sigv4), file transfer resume, proxy tunneling, HSTS, Alt-Svc, unix domain sockets, HTTP compression (gzip, brotli and zstd), etags, parallel transfers, DNS-over-HTTPS и многое другое.  
 
ВНИМАНИЕ! cURL не поддерживает пробелы в URL (см. ./docs/URL-SINTAX.md::spaces), поэтому их нужно кодировать как %20 или cURL выведет ошибку!

Домашняя страница
Дистрибутивы для Windows (официальные) - NT 6.x и выше
Latest win32 (zip) | Latest win64 (zip)
Исходники
 
Файлы curl-ca-bundle.crt | Changelog | Мануал | Примеры
 
Дополнительные источники:
Дистрибутивы для Windows (неофициальные) - ХР/Srv2003 и выше.
Static cURL with HTTP3
 
История появления возможностей CURL

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 20:18 02-09-2012 | Исправлено: mithridat1, 10:57 27-04-2024
greeple

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Цитата:
и именно из-за этого простыми средствами задача не решаема.

у меня оно вот так кстати

Код:
curl -RLJ --remote-name-all "https://download.mozilla.org/?product=firefox-esr-latest&os=win&lang=en"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0Warning: Remote filename has no length!
100    19  100    19    0     0     28      0 --:--:-- --:--:-- --:--:--    28
curl: (23) Failure writing output to destination


Цитата:
просто выводится последний отданный сайтом URL

ну так я это понял с самого начала же, лол, для этого его и написал

Цитата:
ну, так чтоб не гадать на кофейной гуще выполни команду:

это я всё смотрел и читал, и пробовал все варианты, но insorg написал что видел тут вариант в один заход, поэтому и предположил, раз он видел значит я тут утверждать не могу, потому что у меня не работает ничего в один заход

Всего записей: 5437 | Зарегистр. 11-02-2020 | Отправлено: 04:09 25-10-2024
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple
 
Так у вас не удалось записать данные на целевой том: (23) "Write error. Curl could not write data to a local filesystem  or similar." - перевод: Ошибка записи. Curl не мог записать данные на локальную или аналогичную файловую систему., и по команде:

Цитата:
curl -RLJ --remote-name-all "https://download.mozilla.org/?product=firefox-esr-latest&os=win&lang=en"

в curl_response видим запись: "404 page not found", но у меня параллельно стоят OpenSSL 1.0.2u, 1.1.1w, 3.0.15, 3.1.7, 3.2.3 и 3.3.2 (3.4.0 я ещё не ставил, только скачал инсталлер и исходники) и если вы используете cURL 8.10.1, то она слинкована с libressl 4.0.0 (форк OpenSSL 1.1.0 совместимый с ним по API) которые нужно ставить в раздельные каталоги, а в WinSSL как и во всём проприетарном ПО просто может не быть каких-то необходимых cURL вызовов API и на такой копии ОС утилита будет работать неверно...  
 
А insorg судя по его вопросу просто не был уверен что такое возможно и переспрашивал.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 34320 | Зарегистр. 31-07-2002 | Отправлено: 07:28 25-10-2024 | Исправлено: Victor_VG, 08:00 25-10-2024
greeple

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Цитата:
Так у вас не удалось записать данные на целевой том:

читать я умею, но если у ссылке будет название качает нормально, и если сам -o напишу название тоже, а так ошибки такие, и в виндовой, и в скачанной с https://curl.se/windows/

Цитата:
в curl_response видим запись: "404 page not found", но у меня параллельно стоят OpenSSL 1.0.2u, 1.1.1w, 3.0.15, 3.1.7, 3.2.3 и 3.3.2 (3.4.0 я ещё не ставил, только скачал инсталлер и исходники) и если вы используете cURL 8.10.1, то она слинкована с libressl 4.0.0 (форк OpenSSL 1.1.0 совместимый с ним по API) которые нужно ставить в раздельные каталоги, а в WinSSL как и во всём проприетарном ПО просто может не быть каких-то необходимых cURL вызовов API и на такой копии ОС утилита будет работать неверно...

тут ничего не понял, ладно, забей

Всего записей: 5437 | Зарегистр. 11-02-2020 | Отправлено: 12:37 25-10-2024
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple
 
Там всё происходит в два этапа - на первом идёт имя файла и его надо считвать тем же циклом for, а имея имя смотрим "Оно последнее?" и качаем нужное. Я в curld.cmd такой парсер давно встроил:

Код:
curl -lso 1.tmp https://curl.se/windows/
findstr /C:"<b>curl version</b>: " 1.tmp > 2.tmp
for /f "tokens=3 delims=: " %%a in (2.tmp) do set p1=%%a
findstr /C:"<b>Build</b>: " 1.tmp > 2.tmp
for /f "tokens=2 delims=: " %%a in (2.tmp) do set p2=%%a
del /f/q 1.tmp 2.tmp > nul

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

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 34320 | Зарегистр. 31-07-2002 | Отправлено: 14:48 25-10-2024
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG

Цитата:
 А insorg судя по его вопросу просто не был уверен что такое возможно и переспрашивал.

Типа того. Вроде бы смутно припоминаю, что можно как-то за один заход. Но в упор не соображу как сделать и где видел.
 
Сейчас у меня работающая конструкция выглядит вот таким образом
@for /f "eol=- tokens=1-26 delims= " %%a in ('@curl.exe -sLI "https://download.mozilla.org/?product=firefox-esr-latest&os=win&lang=en-US" -w "%%{url_effective}" ^| @FINDSTR /IRC:"Location"') do (@curl -RLO# "%%b")
Не идеально, хоть и для задачи пока достаточно. Но мне не нравится сам факт, что это два вызова курла, ещё и обработка for. Это не так удобно воспринимается, чем если бы это была небольшая аккуратная строчка курла с парой параметров.

Всего записей: 17888 | Зарегистр. 04-11-2010 | Отправлено: 15:04 25-10-2024
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg
 
В один раз тут разве что от вгет-а можно ждать, а с курл требуется парсер типа тех что мы привели ибо там имя отдаётся левой ногой правое переднее ухо чесать Так что придётся колдануть.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 34320 | Зарегистр. 31-07-2002 | Отправлено: 15:12 25-10-2024
greeple

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
wget в этом плане без танцев с бубном работает

Код:
wget --content-disposition "https://download.mozilla.org/?product=firefox-esr-latest&os=win&lang=en-US"

У себя проверил работает нормально. Понятное дело что там свои приколы, но почему у curl так всё сложно не понятно
 
Добавлено:
Victor_VG
Цитата:
В один раз тут разве что от вгет-а можно ждать

а ну вот, да раньше меня написал

Всего записей: 5437 | Зарегистр. 11-02-2020 | Отправлено: 15:13 25-10-2024
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg, в данном случае redirect_url работает шустрее чем url_effective. Плюс url будет последней строкой.

Всего записей: 7698 | Зарегистр. 08-09-2001 | Отправлено: 16:27 25-10-2024
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Понятно. Ну, значит, оставлю как есть. По принципу "работает - не трогай".
 
Добавлено:
los
Сильно большая разница?

Всего записей: 17888 | Зарегистр. 04-11-2010 | Отправлено: 16:40 25-10-2024
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg, в моих условиях - раза в полтора.

Всего записей: 7698 | Зарегистр. 08-09-2001 | Отправлено: 16:48 25-10-2024
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
Типа того, что не три секунды, а две? Оно ж на скорость дальнейшего скачивания влиять не должно.
 
Добавлено:
Если мы сейчас точно об одном и том же вообще...

Всего записей: 17888 | Зарегистр. 04-11-2010 | Отправлено: 22:28 25-10-2024
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg
los
 
Ребята! По моему вы одну вещь упустили - интервал времени ответа удалённой системы на запрос "Дай URL на скачивание файла" будет меняться если для балансировки нагрузки динамически выбирается наименее загруженный сервер или используется очередь запросов и войдёт в общее время выполнения операции. Я думаю, что причина в этом.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 34320 | Зарегистр. 31-07-2002 | Отправлено: 09:49 26-10-2024
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg

Цитата:
Типа того, что не три секунды, а две?

да.

Цитата:
Оно ж на скорость дальнейшего скачивания влиять не должно.

Нет, влияет на общение выполнение команды т.е. время получения ссылки+время скачивания.

Всего записей: 7698 | Зарегистр. 08-09-2001 | Отправлено: 10:20 26-10-2024
alexnov66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как скачивать файл с проверкой изменения, качать только если файл изменился.
вот такая команда не работает, перекачивает заново, может другой ключ надо.
curl -Z -o C:\blacklist\file.txt http://domain.com/file.rsc
при повторном запуске батника как то быстро скачивается, может это проверка так проходит, тогда почему время файла меняется, странно как то.

Всего записей: 1401 | Зарегистр. 29-08-2005 | Отправлено: 11:23 05-11-2024 | Исправлено: alexnov66, 11:29 05-11-2024
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexnov66,  
http://domain.com/file.rsc
подерживает etag или Last-Modified и т.п. позволяющее определить изменение файла file.rsc? Размер файла для этого не очень подходит.
Проверить можно
curl -sLI http://domain.com/file.rsc

Всего записей: 7698 | Зарегистр. 08-09-2001 | Отправлено: 12:46 05-11-2024
alexnov66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
выводит кучу параметров, не буду сюда постить, список для роутера микротик.
http://joshaven.com/spamhaus.rsc
перекачивается долго, ссылок 14 штук, хочу сделать с проверкой что бы каждый раз не перекачивать.
возможно у них файл так часто меняется что он поэтому и меняет время.

Всего записей: 1401 | Зарегистр. 29-08-2005 | Отправлено: 12:54 05-11-2024 | Исправлено: alexnov66, 13:08 05-11-2024
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexnov66,
С last modified time:
curl -sLR -o file http://joshaven.com/spamhaus.rsc
следующие закачки
curl -sLR -z file -o file http://joshaven.com/spamhaus.rsc
 
С etag:
curl -sL --etag-save etag -o file http://joshaven.com/spamhaus.rsc
Следующие закачки
curl -sL --etag-compare etag -o file http://joshaven.com/spamhaus.rsc
 
 
 
Добавлено:
Пропустил ключ для следующих закачек с etag.
Так должно работать:
curl -sL --etag-compare etag --etag-save etag -o file http://joshaven.com/spamhaus.rsc
Если нет, то нужно будет использовать скрипт.

Всего записей: 7698 | Зарегистр. 08-09-2001 | Отправлено: 13:25 05-11-2024
alexnov66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los

Цитата:
Пропустил ключ для следующих закачек с etag.

в каком смысле для следующих, следующих по списку или через время проверки файла, то есть сначала копируем а потом уже с другими ключами проверка.
а ключ о и ключ z можно тоже прилепить к ключам или должен быть отдельно.
с маленькой z не работало вообще.
 
а два филе так и надо или опечатка
curl -sLR -z file -o file
 
так должно быть однако.
curl -sLR -z -o file.txt

Всего записей: 1401 | Зарегистр. 29-08-2005 | Отправлено: 14:39 05-11-2024 | Исправлено: alexnov66, 14:54 05-11-2024
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
alexnov66
 
А ключи посмотреть? ключи для v8.10.1

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 34320 | Зарегистр. 31-07-2002 | Отправлено: 15:00 05-11-2024
alexnov66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
у меня 8.9.1 стоит, в консоли можно смотреть ключи
curl --help all

Всего записей: 1401 | Зарегистр. 29-08-2005 | Отправлено: 15:06 05-11-2024
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12

Компьютерный форум Ru.Board » Компьютеры » Программы » CURL


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru