Обычно можно скачать файл с URL-адресом, заканчивающимся расширением файла.

Чтобы загрузить Ubuntu ISO, достаточно просто

wget http://releases.ubuntu.com/14.04.3/ubuntu-14.04.3-desktop-amd64.iso

Однако я наткнулся на сайт, который, как я подозреваю, использует ASP.Net / IIS.

Ссылка на ISO в этой форме (я удалил содержание ссылки в случае ... политики):

http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899

Я не уверен, как это скачать, так как он имеет MD5 и время истечения в качестве параметров, и поэтому wget загружает только веб-страницу, а не этот ISO.

Какие-либо предложения?

3 ответа3

3

Если вы просто пытаетесь получить разумное имя файла в виде сложного URL, вы можете использовать опцию output-document .

-O file
--output-document=file

Любая из этих форм будет работать.

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

3

использование

wget "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899"

Объяснение: В URL есть символ "&". В Linux и подобных системах это делает его фоновым процессом. Решение это заключить URL в двойные кавычки ("), чтобы он рассматривался как один аргумент.

0

Есть два способа сделать это с помощью Curl.

В этом первом методе вы бы -O для записи файла на основе удаленного имени из URL; в этом случае он, скорее всего, запишет файл в систему как IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899 ; обратите внимание, как значение URL содержится в двойных кавычках, так как & и ? может быть неверно истолковано как команды Bash:

curl -O -L "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899";

Хотя этот метод технически «работает», но имя файла в лучшем случае сбивает с толку. Таким образом, в этом другом методе вы использовали бы перенаправление вывода - с > после которого следует имя файла после URL - для вывода содержимого файла в файл с именем IMAGENAME.ISO:

curl -L "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899" > "IMAGENAME.ISO";

Так что, если вы спросите меня, второй метод лучше всего подходит для большинства средних пользователей. Также обратите внимание, что флаг -L используется в обеих командах; эта команда указывает Curl следовать любым ссылкам перенаправления, которые может иметь URL-адрес загрузки файла, поскольку файлы служб загрузки перенаправляют несколько раз, прежде чем попасть в целевой файл полезной нагрузки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .