The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Утилита wcurl принята в состав проекта Curl

12.08.2024 09:43

Дэниел Cтенберг (Daniel Stenberg), автор утилиты для получения и отправки данных по сети curl, объявил о принятии в состав проекта утилиты wcurl. Утилита wcurl теперь признана официальным проектом curl, но при этом её разработка будет продолжена прежними сопровождающими в отдельном репозитории, независимо от curl. Утилиту развивает один из мэйнтейнеров Debian, сопровождающий пакет с curl. В Debian Testing, Debian Unstable и в бэкпортах Debian 12 утилита wcurl уже поставляется в составе пакета curl. Код утилиты wcurl написан на Shell и распространяется под лицензией Curl (вариант лицензии MIT).

Новая утилита представляет собой обвязку над curl, реализующую упрощённый интерфейс для загрузки файлов, напоминающий по принципу запуска утилиту wget и избавляющий пользователя от необходимости запоминать специфичные параметры запуска curl (например, многим проще установить wget, чем каждый раз набирать "curl -L -O -C --remote-time"). В отличие от curl утилита wcurl позволяет указать сразу несколько ссылок для загрузки, автоматически обрабатывает перенаправления и предпринимает повторные попытки загрузки в случае сбоев.

Вместо вывода в стандартный поток wcurl сохраняет загруженную информацию в файлы, имена которых выбираются на основе содержимого указанных ссылок или имени, возвращённом сервером, а время изменения файла выставляется в значение, которое сервер возвращает в HTTP-заголовке Last-modified. Если файл с выбранным именем уже существует, wcurl не перезаписывает его, а добавляет дополнительную цифру к имени. При указании нескольких ссылок, обеспечивается их параллельная загрузка.

Утилита также отключает обработку подстановок "{}" и "[]" в URL и допускает использование пробелов в ссылках, самостоятельно заменяя их на формат "%xx". При помощи опции "--curl-options" пользователю предоставляется возможность задания любых опций curl, а через опцию "--dry-run" определения строки для запуска curl без фактического выполнения операции.

В анонсе также упоминается утилита trurl, созданная автором curl в прошлом году и дополняющая curl возможностями для разбора и манипуляции URL. При помощи утилиты trurl можно в скриптах быстро выполнять такие действия, как замена имени хоста, страниц и отдельных параметров в ссылке, выделение хоста и пути из ссылки, преобразование URL в раздельное представление элементов в формате JSON. Код trurl написан на C и Perl, и распространяется под лицензией Curl.

  1. Главная ссылка к новости (https://daniel.haxx.se/blog/20...)
  2. OpenNews: В CVE опубликованы отчёты о ложных уязвимостях в curl, PostgreSQL и других проектах
  3. OpenNews: Первый стабильный релиз утилиты для загрузки web-контента GNU Wget2
  4. OpenNews: Релиз утилиты cURL 8.0
  5. OpenNews: Лидером загрузок Curl стало вредоносное ПО
  6. OpenNews: В рамках проекта HTTPie развивается упрощённый аналог утилиты curl
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61691-curl
Ключевые слова: curl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (55) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Stanislav (??), 10:24, 12/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    С учётом того, что по-умолчанию ни curl (как бинарник, а не libcurl), ни wget не установлены, но при этом wget умеет в -b (и это не то же самое, что nohup wcurl &) — ставиться всё равно будут оба.
     
     
  • 2.4, Аноним (4), 10:26, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В бубунту wget по умолчанию стоит. Это может в контейнере его нет.
     
     
  • 3.5, Stanislav (??), 10:29, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > В бубунту wget по умолчанию стоит. Это может в контейнере его нет.

    Убунтой оси не исчерпываются, как и дефолтной инсталляцией "всё подряд"

     
     
  • 4.46, нейм (?), 09:52, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ну так и ты скоуп не ограничил. Вот тебе и прилетело примером, что кое-где оно все таки есть.
     
     
  • 5.51, Stanislav (??), 13:28, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • –6 +/
    > Ну так и ты скоуп не ограничил. Вот тебе и прилетело примером,
    > что кое-где оно все таки есть.

    Ну так и единичный пример ничего не доказывает.

     
  • 4.55, 1 (??), 00:07, 14/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    невпопад
     
  • 2.7, Аноним (7), 10:51, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ставлю task-spooler и curl. Ни разу в жизни не юзал wget -b.
     
     
  • 3.52, Stanislav (??), 13:30, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ставлю task-spooler и curl. Ни разу в жизни не юзал wget -b.

    Даже и не в курсе о task-spooler, ибо при регулярном использовании — cron/systemd-timer, а при нерегулярном — запустил в бекграунде и пусть себе работает и пишет логи.

     
  • 2.11, НяшМяш (ok), 11:16, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Ленивые ставят aria2c )
     
     
  • 3.14, Аноним (14), 12:19, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да, ее возможности качать файл во много потоков и продолжать прерванные закачки маст хэв.
     
     
  • 4.15, Аноним (4), 13:42, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Продолжать прерванные закачки ключ такой есть причем у всех. Просто ты его не знаешь.
     
  • 3.19, Stanislavvv (?), 15:15, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Ленивые ставят aria2c )

    Как раз не ленивые :-)

     

  • 1.2, Аноним (4), 10:24, 12/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ну все наконец можно пользоваться. Годно нужно.
     
  • 1.3, Аноним (3), 10:26, 12/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > например, многим проще установить wget, чем каждый раз набирать "curl -L -O -C --remote-time

    А что, алиас нельзя чтоли сделать для этого? А вообще что сложного запомнить один ключ без аргументов -O  ?

     
     
  • 2.8, Аноним (8), 11:09, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот именно, есть наборы ключей, которые уже устаканиваются в голове. Например, ss -tulpn. Прикол в том, что "тульпн" я запомнил, а "сс" мне почему-то дался сложнее, поэтому у меня стоит алиас tulpn="ss -tulpn". То же самое с ls -al, rm -rf, curl -LOC: просто запоминаешь и всё, короткие версии опций даны именно для удобства запоминания.
     
     
  • 3.16, Аноним (4), 13:45, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так можно дойти до того что словами диктовать что надо, а нейросеть все расставляет в нужном порядке.
     
     
  • 4.35, randomize (?), 20:34, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что в этом плохого?
     
     
  • 5.37, Аноним (4), 22:55, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Как только нейросеть исчезнет, например, ты её не оплатил, ты больше ничего сделать не сможешь.
     
     
  • 6.40, randomize (?), 01:03, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Можно подумать, что если интернет отключат, то проще будет. Или ты с хакнутого вайфая сидишь?
     
  • 6.45, Аноним (45), 07:49, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    С такими штуками вполне справится компактная локальная модель
     
     
  • 7.47, Аноним (4), 10:14, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И где тогда она?
     
  • 4.49, Аноним (49), 10:37, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Уже пробовали, только без этих ваших нейросеток. Получился DWIM и отбил охоту так делать, навсегда.
     
  • 2.9, myster (ok), 11:14, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > А что, алиас нельзя чтоли сделать для этого?

    там чуть больше параметров, вот собственно код
    https://github.com/curl/wcurl/blob/main/wcurl

    > А вообще что сложного запомнить один ключ без аргументов -O  ?

    некоторым даже набирать это лень, даже если запомнили

     
     
  • 3.10, НяшМяш (ok), 11:16, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Есть автодополнение )
     
     
  • 4.12, Аноним (12), 12:13, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    в баше есть? или оно в zhc?
     
     
  • 5.13, Аноним (12), 12:14, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    zsh конечно
     
  • 3.17, crypt (ok), 14:06, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > там чуть больше параметров, вот собственно код

    ни о чем. 100 строк на баше.

     
     
  • 4.18, myster (ok), 14:50, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > ни о чем. 100 строк на баше.

    Чего-то не хватает?
    Вклад в проект приветствуется, просто сделай PR.

     
  • 2.24, Аноним (24), 16:09, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А потом ещё помнить все алиасы, потом привыкнуть к ним и на новом месте если вдр... большой текст свёрнут, показать
     
     
  • 3.30, Аноним (3), 17:35, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Curl отличный инструмент, но он со своим подходом как С, излишне кpacнoглaз даже на каких-то элементарных вещах

    Наверно потому что curl - это в первую очередь асинхронная libcurl, а уже потом в последнюю очередь утилита curl

     
  • 3.42, randomize (?), 01:35, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Возьмем, например, git. У меня алиас l означает log -10 --abbrev-commit --oneline. Понимаешь теперь? Юзкейсов слишком много.
     
     
  • 4.53, Аноним (53), 14:02, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Возьмем, например, git. У меня алиас l означает log -10 --abbrev-commit --oneline.
    > Понимаешь теперь? Юзкейсов слишком много.

    Я в курсе что такое алиасы и как оно может работать, я свою позицию описал ещё в исходном сообщении, ликбезов базы мне не нужно приводить! ;)

     
     
  • 5.54, randomize (?), 16:39, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда, тем более, непонятно, как ты предлагаешь проектировать консольные утилиты без алиасов и простыней параметров. выпилить все и заявить "нам нинужна"?
     

  • 1.6, Аноним (6), 10:29, 12/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    А мог бы поддержку utf-8 в content-disposition добавить, curl до сих пор не поддерживает скачивание файлов с именами файлов в юникоде.
     
     
  • 2.21, Аноним (21), 15:17, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для поддержки юникода разве нужно что-то большее чем скипать бланки после ':' и копипастить всё до CR LF?
     
  • 2.23, Аноним (23), 16:09, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    если не поддерживает, значит "нинужно!".
     
     
  • 3.26, Аноним (6), 16:22, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это понятно, но например с дропбокса не скачать ничего. Приходится скачивать wget и не очень красиво грепать заголовки ответа для извлечения имени, я бы предпочёл получать имя файла из -w "%{filename_effective}" и чтобы curl работал.
     

  • 1.20, Аноним (20), 15:17, 12/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Настоящий убунтолог - соорудить обвязку другими средствами, вместо вноса доработок в сам инструмент.
     
     
  • 2.25, Аноним (23), 16:10, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, может он боится патчи мержить.
    А так - автор целого пакета!
     
     
  • 3.57, Аноним (57), 12:59, 17/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так ведь и ЮАР-вцы тоже держат проект на весь мир. И Фаерфокс гордится количеством народа на проекте. Но есть особенности, при которых размер проекта не означает долгой жизни и протяжённой пользы от проекта.

    Построение обвязок, вместо улучшения - признак временности и слабости проекта: слабость у кодеров, временность из-за последствий затухания при поддержке такого результата.

     

  • 1.22, Аноним (-), 15:54, 12/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Скажте в чём Сила curl-а? Так-то я пользуюсь wget.
     
     
  • 2.39, Аноним (3), 00:43, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сила curl 'а в libcurl, которую можно использовать с poll() / epoll() / libev / libevent / libuv
     
  • 2.56, Аноним (56), 22:10, 14/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    curl - инструмент диагностики http (посмотреть какие сервер отраёт заголовки), а wget - утилита для скачивания файлов.
     

  • 1.27, Аноним (27), 16:28, 12/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ура! Shell рулит!!

    А есть еще httrack!!!
    Но там правда опций, вагон и две маленькие тележки. Так что, современный среднестатистический IT-человек не потянет :(

     
     
  • 2.28, myster (ok), 17:01, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А есть еще httrack!!!

    Глянул httrack, с 2017 нет обновлений, удивительно, что проект еще существует, обычно домен к этому времени уже продан и на нём продают виагру.

    Я бы не сравнивал httrack с curl, их используют для разных целей.

     
     
  • 3.31, Аноним (31), 18:08, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Глянул httrack, с 2017 нет обновлений

    https://github.com/xroche/httrack

     
     
  • 4.50, myster (ok), 13:25, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > https://github.com/xroche/httrack

    подтверждает, что проект барахтается на издыхании

     

  • 1.36, Аноним (36), 22:42, 12/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >избавляющий пользователя от необходимости запоминать

    systemd-wcurld!

     
     
  • 2.38, Аноним (4), 22:57, 12/08/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не надо так. Подсказывать плохо.
     
  • 2.41, Чайник (??), 01:20, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    мужики, где скачать systemd linux?
     
     
  • 3.43, randomize (?), 01:38, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да почти любой бери. Без нее работать не будет )
     
     
  • 4.44, Чайник (??), 02:13, 13/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    да мне чтобы обои красивые были c надписью systemd OS
    и чтобы systemd-bjd и systemd-hoed умело
     
     
  • 5.60, Аноним (4), 13:35, 21/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не надо так.
     

  • 1.58, Quad Romb (ok), 22:17, 19/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не ругани ради, а исключительно для прояснения вопроса- но кто мешает класть какой-нибудь типовой curlrc, "чем каждый раз набирать "curl -L -O -C --remote-time"" ?
     
     
  • 2.59, Аноним (4), 13:34, 21/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Куда класть? Как узнать что и куда ты положил? Почему не сделать алиас рм -рф?
     
     
  • 3.61, Quad Romb (ok), 19:27, 24/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Куда класть? Как узнать что и куда ты положил? Почему не сделать
    > алиас рм -рф?

    В хомяк. А курл его знает. Опасно.
    Пожалуйста.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру