1

Я столкнулся с поведением 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 ответ1

2

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

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

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