Как wget может загружать ISO-файлы, если в библиотеке FTP указан только файл iso.gz?

351
RaamEE

Я столкнулся с поведением wget с FTP-сервера (URL: ftp://foo.com/bar/ ... ), которое мне было незнакомо. Можете ли вы направить меня к какой-либо документации или объяснить, как это возможно?

Если я увижу URL-адрес папки, я получу index.html(показано внизу сообщения) со следующим списком, который показывает, что доступен только заархивированный файл:os_image_123_0-incr-repo.iso.gz

Я могу wget URL этого файла, и я получу файл gzip с определенной контрольной суммой MD5.

c4fd702b3ad296561b2ec7e4b888e624 os_image_123_0-incr-repo.iso.gz os_image_123_0-incr-repo.iso.gz: gzip compressed data - deflate method, original file name 

Однако я также могу получить тот же URL-адрес файла без .gzрасширения, оставив только имя файла, os_image_123_0-incr-repo.isoи теперь я получу iso-файл, которого нет в списке index.html.

08daf88aca95325c3aa9ae6406e02198 os_image_123_0-incr-repo.iso os_image_123_0-incr-repo.iso: ISO 9660 filesystem image 

Это как если бы wget "знает" извлечь iso из файла iso.gz.

Это то, что происходит? Как это работает?

Это содержимое, указанное в index.htmlпапке:

2016 Apr 13 14:45 Directory <a href="ftp://foo.com/bar/05/.RE/">.RE/</a>  2016 Apr 13 14:36 File <a href="ftp://foo.com/bar/05/README.11.3.7">README.11.3.7</a> (3097 bytes) 2016 Apr 13 14:36 File <a href="ftp://foo.com/bar/05/md5sum-repo-iso-123_0.txt">md5sum-repo-iso-123_0.txt</a> (63 bytes) 2016 Apr 13 13:02 File <a href="ftp://foo.com/bar/05/md5sums.txt">md5sums.txt</a> (321 bytes) 2016 Apr 13 09:52 File <a href="ftp://foo.com/bar/05/os_image_123_0-ai-sparc.iso">os_image_123_0-ai-sparc.iso</a> (570142720 bytes) 2016 Apr 13 09:53 File <a href="ftp://foo.com/bar/05/os_image_123_0-ai-x86.iso">os_image_123_0-ai-x86.iso</a> (496521216 bytes) 2016 Apr 13 13:02 File <a href="ftp://foo.com/bar/05/os_image_123_0-fallback_boot-sparc.pkg">os_image_123_0-fallback_boot-sparc.pkg</a> (103859114 bytes) 2016 Apr 13 14:37 File <a href="ftp://foo.com/bar/05/os_image_123_0-incr-repo.iso.gz">os_image_123_0-incr-repo.iso.gz</a> (3613854717 bytes) 2016 Apr 13 09:52 File <a href="ftp://foo.com/bar/05/os_image_123_0-text-sparc.iso">os_image_123_0-text-sparc.iso</a> (885370880 bytes) 2016 Apr 13 09:53 File <a href="ftp://foo.com/bar/05/os_image_123_0-text-x86.iso">os_image_123_0-text-x86.iso</a> (795648000 bytes) 2016 Apr 13 14:38 Directory <a href="ftp://foo.com/bar/05/zipped-repo/">zipped-repo/</a>  

Добавление вывода wget.

[my_user 503 0 /tmp]$ wget ftp://foo.bar.com/products/Solaris_11/s11.3/support/sru07/05/sol-11_3_7_5_0-incr-repo.iso.gz --2016-05-10 06:39:19-- ftp://foo.bar.com/products/Solaris_11/s11.3/support/sru07/05/sol-11_3_7_5_0-incr-repo.iso.gz => ‘sol-11_3_7_5_0-incr-repo.iso.gz’ Resolving foo.bar.com (foo.bar.com)... 10.10.11.11 Connecting to foo.bar.com (foo.bar.com)|10.10.11.11|:21... connected. Logging in as anonymous ... Logged in! ==> SYST ... done. ==> PWD ... done. ==> TYPE I ... done. ==> CWD (1) /products/Solaris_11/s11.3/support/sru07/05 ... done. ==> SIZE sol-11_3_7_5_0-incr-repo.iso.gz ... 3613854717 ==> PASV ... done. ==> RETR sol-11_3_7_5_0-incr-repo.iso.gz ... done. Length: 3613854717 (3.4G) (unauthoritative)  sol-11_3_7_5_0-incr-repo.iso.gz 100%[===========================================================================>] 3.37G 99.5MB/  2016-05-10 06:39:56 (94.4 MB/s) - ‘sol-11_3_7_5_0-incr-repo.iso.gz’ saved [3613854717] 

[my_user 505 0 /tmp]$ wget ftp://foo.bar.com/products/Solaris_11/s11.3/support/sru07/05/sol-11_3_7_5_0-incr-repo.iso --2016-05-10 06:43:25-- ftp://foo.bar.com/products/Solaris_11/s11.3/support/sru07/05/sol-11_3_7_5_0-incr-repo.iso => ‘sol-11_3_7_5_0-incr-repo.iso’ Resolving foo.bar.com (foo.bar.com)... 10.10.11.11 Connecting to foo.bar.com (foo.bar.com)|10.10.11.11|:21... connected. Logging in as anonymous ... Logged in! ==> SYST ... done. ==> PWD ... done. ==> TYPE I ... done. ==> CWD (1) /products/Solaris_11/s11.3/support/sru07/05 ... done. ==> SIZE sol-11_3_7_5_0-incr-repo.iso ... done.  ==> PASV ... done. ==> RETR sol-11_3_7_5_0-incr-repo.iso ... done.  sol-11_3_7_5_0-incr-repo.iso [ <=> ] 4.04G 32.3MB/  2016-05-10 06:45:39 (30.9 MB/s) - ‘sol-11_3_7_5_0-incr-repo.iso’ saved [4337887232] 
1
Вы написали * «показывает, что доступен только заархивированный файл» *, да, в приведенном ниже списке показано: `08daf88aca95325c3aa9ae6406e02198 os_image_123_0-incr-repo.iso`. Также я не понимаю ваших двух отдельных списков, оба помечены как `index.html` Martin Prikryl 8 лет назад 0
Кроме того, что URL? Это `ftp: //` или `http: //`? Что это за сервер? Martin Prikryl 8 лет назад 0
Спасибо @MartinPrikryl - я отредактировал пост, чтобы сделать его более читабельным. Это FTP: // сервер. Это мой внутренний сервер на моем рабочем месте, поэтому я не могу поделиться им с другими. RaamEE 8 лет назад 0
Но что такое FTP-сервер * программное обеспечение *? Martin Prikryl 8 лет назад 0
У меня нет этой информации. RaamEE 8 лет назад 0
Файл журнала с любого FTP-клиента может показать это. На самом деле файл журнала и полный вывод `wget` могут быть полезны. Martin Prikryl 8 лет назад 0
Добавлен вывод wget. файл журнала не содержит дополнительной информации, кроме той, что была добавлена ​​в вывод. RaamEE 8 лет назад 0
ОК, попробуйте другой FTP-клиент. Например, какой-нибудь графический интерфейс, FileZilla или WinSCP. Martin Prikryl 8 лет назад 0

1 ответ на вопрос

2
Martin Prikryl

Вероятно, сервер настроен на поиск .gzфайла, когда запрошенный файл не найден и возвращает извлеченное содержимое.

С HTTP, вероятно, легко настроить это с помощью Apache mod_rewriteи mod_deflateмодулей. Не уверен, если какой-либо FTP-сервер поддерживает это.