Показать полную графическую версию : [решено] curl - Скачать по "непрямой" ссылке
Подскажите, пожалуйста, можно ли с помощью curl скачать файл по "непрямой" ссылке: https://aka.ms/vs/15/release/vs_professional.exe
curl -L https://aka.ms/vs/15/release/vs_professional.exe --output vs_professional.exe
Или PowerShell:
Invoke-WebRequest https://aka.ms/vs/15/release/vs_professional.exe -OutFile vs_professional.exe
Или wget.exe — он тоже умеет «ходить» по ответу HTTP 301.
greg zakharov
29-08-2017, 20:16
Iska, wget в плане рекурсии лучше curl, в чем автор последнего признается сам (https://daniel.haxx.se/docs/curl-vs-wget.html). Например, curl плохо справляется со ссылками sourceforge, а вот преимуществом curl перед wget является простота сборки под разные платформы, большее количество поддерживаемых протоколов, сертификаты и прочее, и прочее. Обычно пользуюсь им для отправки файлов в облако через WebDAV и просмотра почты.
Kazun, не проще ли использовать ключ -O, вместо -o? Иными словами:
curl -#LO https://aka.ms/vs/15/release/vs_professional.exe
сохранит файл с тем же именем, что и в url'е.
Обычно пользуюсь им для отправки файлов в облако через WebDAV и просмотра почты. »
А можно поподробнее, пожалуйста? Что и как...
greg zakharov
30-08-2017, 19:36
А можно поподробнее, пожалуйста? Что и как...Подробно все расписано в самом curl:
curl --manual
Но если кратко... то с чего бы тогда начать? Обычно я собираю curl из исходников с такими библиотеками: OpenSSL, libssh2, c-ares и zlib. Далее устанавливаю переменную окружения HOME (sysdm.cpl,3 -> Переменные окружения -> Переменные среды пользователя -> HOME = %userprofile%). Далее в папке пользователя создаю файл _netrc (https://ec.haxx.se/usingcurl-netrc.html), - это в разы упростит авторизацию. И далее (примеры для Яндекс.Диска):
rem вывод списка файлов в корне диска ответ от сервера
rem будет в виде xml, разобрать который можно с помощью
rem xmlstarlet или того же powershell
curl -n https://webdav.yandex.ru -X PROPFIND -H "Depth: 1"
rem вывод списка файлов в какой-нибудь поддиректории
curl -n https://webdav.yandex.ru/sub -X PROPFIND -H "Depth: 1"
rem отправка файла в поддиректорию диска
curl -n https://webdav.yandex.ru/sub/ -X PUT -T 'C:\cloud\some_file.exe'
rem загрузить файл
curl -n https://webdav.yandex.ru/sub/some_file.exe -X GET -O
rem удалить файл
curl -n https://webdav.yandex.ru/sub/some_file.exe -X DELETE
Примерно такие команды.
Чтобы обезопасить _netrc файл от просмотра и снизить количество телодвижений при наборе команд, все это лучше обернуть в командный сценарий, в котором при посыле запросов декодируется _netrc (например, тем же OpenSSL), после чего он снова кодируется, - что-то вроде базовой безопасности.
Что касается почты... если тема действительно интересна, могу рассказать подробней и про нее.
P.S.Если curl на что-то ругается, задайте ключ -v, дабы понять что происходит "за кулисами".
А как скачать curlом по такой ссылке https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.7z
Смысл в том, что название архива при ручном скачивании другое. Перепробовал разные комбинации, но архив не скачался.
Sisin, приведённая Вами ссылка является ссылкой на html-содержимое следующего содержания:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>303 See Other</title>
</head><body>
<h1>See Other</h1>
<p>The answer to your request is located <a href="https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-4.4-essentials_build.7z">here</a>.</p>
</body></html>
303 See Other (https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D 1%8F%D0%BD%D0%B8%D1%8F_HTTP#303)
Разрешайте редирект и указывайте имя файла для сохранения полученного содержимого:
"%ProgramFiles%\cURL\bin\curl.exe" --location https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.7z --output "ffmpeg-release-essentials.7z"
DJ Mogarych
29-08-2021, 08:54
Powershell:
curl "https://aka.ms/vs/15/release/vs_professional.exe" -OutFile "C:/temp/vs.exe"
curl "https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.7z" -OutFile "C:/temp/ffmpeg-release-essentials.7z"
Foreigner
18-08-2023, 14:57
Подскажите, как скачать xml файл по вот такой ссылке »
pwsh:
(Invoke-WebRequest 'https://a-class.com.ua/uk/api/price.xml?c%5B0%5D=2&key=63fdb4ce22fdf').Content | Set-Content price.xml
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.