Обычно загружается файл с 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-образ.
Какие-либо предложения?
решение1
Использовать
wget "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899"
Объяснение: В URL есть символ "&". В Linux и подобных системах это делает процесс фоновым.
Решение — заключить URL в двойные кавычки ( "
), чтобы он рассматривался как один аргумент.
решение2
Если вы просто пытаетесь получить разумное имя файла из сложного URL, вы можете использоватьвыходной документвариант.
-O file
--output-document=file
Любая из этих форм подойдет.
Как отмечалось ранее, убедитесь, что ни один из специальных символов в URL-адресе не интерпретируется анализатором команд.
решение3
Есть два способа сделать это с помощьюЗавиток.
В этом первом методе вы бы установили -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-адрес загрузки файла, поскольку во многих случаях файлы на сервисах загрузки перенаправляют несколько раз, прежде чем попасть в целевой файл полезной нагрузки.