Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] curl - Скачать по "непрямой" ссылке (http://forum.oszone.net/showthread.php?t=329398)

Sisin 29-08-2017 15:41 2761332

curl - Скачать по "непрямой" ссылке
 
Подскажите, пожалуйста, можно ли с помощью curl скачать файл по "непрямой" ссылке: https://aka.ms/vs/15/release/vs_professional.exe

Kazun 29-08-2017 15:59 2761336

Код:

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

Iska 29-08-2017 16:11 2761339

Или wget.exe — он тоже умеет «ходить» по ответу HTTP 301.

greg zakharov 29-08-2017 20:16 2761378

Iska, wget в плане рекурсии лучше curl, в чем автор последнего признается сам. Например, curl плохо справляется со ссылками sourceforge, а вот преимуществом curl перед wget является простота сборки под разные платформы, большее количество поддерживаемых протоколов, сертификаты и прочее, и прочее. Обычно пользуюсь им для отправки файлов в облако через WebDAV и просмотра почты.
Kazun, не проще ли использовать ключ -O, вместо -o? Иными словами:
Код:

curl -#LO https://aka.ms/vs/15/release/vs_professional.exe
сохранит файл с тем же именем, что и в url'е.

Sisin 30-08-2017 12:56 2761477

Цитата:

Цитата greg zakharov
Обычно пользуюсь им для отправки файлов в облако через WebDAV и просмотра почты. »

А можно поподробнее, пожалуйста? Что и как...

greg zakharov 30-08-2017 19:36 2761546

Цитата:

Цитата Sisin
А можно поподробнее, пожалуйста? Что и как...

Подробно все расписано в самом curl:
Код:

curl --manual
Но если кратко... то с чего бы тогда начать? Обычно я собираю curl из исходников с такими библиотеками: OpenSSL, libssh2, c-ares и zlib. Далее устанавливаю переменную окружения HOME (sysdm.cpl,3 -> Переменные окружения -> Переменные среды пользователя -> HOME = %userprofile%). Далее в папке пользователя создаю файл _netrc, - это в разы упростит авторизацию. И далее (примеры для Яндекс.Диска):
Код:

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, дабы понять что происходит "за кулисами".

Sisin 28-08-2021 16:05 2965203

А как скачать curlом по такой ссылке https://www.gyan.dev/ffmpeg/builds/f...-essentials.7z

Смысл в том, что название архива при ручном скачивании другое. Перепробовал разные комбинации, но архив не скачался.

Iska 28-08-2021 17:43 2965207

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

Разрешайте редирект и указывайте имя файла для сохранения полученного содержимого:
Код:

"%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 2965260

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 3014151

Цитата:

Цитата Solitude
Подскажите, как скачать xml файл по вот такой ссылке »

pwsh:
Код:

(Invoke-WebRequest 'https://a-class.com.ua/uk/api/price.xml?c%5B0%5D=2&key=63fdb4ce22fdf').Content | Set-Content price.xml


Время: 06:37.

Время: 06:37.
© OSzone.net 2001-