Загружать вложения в URL-адрес перенаправления через Axel

Axel не разрешает URL-адреса, перенаправляющие на другой URL-адрес с файлом в качестве вложения. Как вы видите, я получаю 404, когда пытаюсь загрузить этот URL. (исходный сайт заменен example.com)

~ ▶ axel https://eusa.example.com/zipstream/1581777.zip?tunnel=1&token=b7385bb62e3111e3ace1002481265109&storage=s09 [2] 767 [3] 768 Initializing download: https://eusa.example.com/zipstream/1581777.zip?tunnel=1 [1] Exit 1 axel https://eusa.example.com/zipstream/1581777.zip?tunnel=1 [3]+ Done token=b7385bb62e3111e3ace1002481265109 ~ ▶ HTTP/1.1 404 Not Found 

Документация на сайте описывает перенаправление URL следующим образом:

  • Curl не удалось прочитать файл known_hosts
  • Как оптимизировать время загрузки Arch linux?
  • Ошибки http
  • cURL на Linux не скомпилирован, хотя установлен
  • почему скручивание и wget приводят к запрету на 403?
  • Linux TCP стек не пересылает данные в мое приложение
  • Первый ответ всегда является перенаправлением. Расположение файла находится в заголовке «Местоположение». Клиент должен отправить новый запрос GET в новое место. Отображаются только заголовки.

     HTTP/1.1 302 FOUND Server: nginx Date: Thu, 09 Feb 2012 15:58:53 GMT Content-Type: text/html; charset=utf-8 Connection: keep-alive Keep-Alive: timeout=60 Content-Length: 385 Location: http://s01.example.com/v2/files/26205116/download?oauth_token=4a63387841ce11e1a047001018321b64 

    идет:

     HTTP/1.1 200 OK Server: nginx Date: Thu, 09 Feb 2012 15:58:53 GMT Content-Type: application/x-rar Content-Length: 3190802 Last-Modified: Fri, 16 Sep 2011 11:42:13 GMT Connection: keep-alive Keep-Alive: timeout=60 Content-Disposition: attachment; filename="file.rar" Accept-Ranges: bytes 

    curl способен загрузить URL. Но axel дает мне 404. Я хочу использовать функцию мультисоединения Axel. Как я могу использовать curl чтобы просто разрешить URL-адрес и загрузить задание на axel ?

  • Как создать зеркало http?
  • Захват веб-трафика, сгруппированный отдельными потоками TCP
  • Как отремонтировать CentOS? Не удалось установить / sysroot
  • Зачем мне GRUB_DISABLE_LINUX_UUID = true
  • Обратный туннель SSH работает для SSH, но не для HTTP
  • Доступ к каждой строке в .txt-файле, загрузка и переименование ссылок
  • One Solution collect form web for “Загружать вложения в URL-адрес перенаправления через Axel”

    Котировочная проблема?

    Попробуйте привязать URL-адрес к axel в одинарных кавычках. Bash пытается проанализировать аргументы & в параметрах в URL-адресе, как вы говорите, чтобы выполнить команду.

     $ axel 'https://eusa.example.com/zipstream/1581777.zip?tunnel=1&token=b7385bb62e3111e3ace1002481265109&storage=s09' 

    Отслеживание ошибок Axel

    Просматривая список открытых ошибок для Axel, похоже, что эта проблема была идентифицирована ранее, и автор, похоже, не отвечает на эту проблему.

    См. Эти вопросы для получения дополнительной информации :

    • [# 313080] Производит плохой HTTP-запрос, когда перенаправленная ссылка 302 длиннее 255 символов (например, youtube)
    • https://alioth.debian.org/tracker/?group_id=100070&atid=413085&func=detail&aid=313606
    • [# 311178] Переполнение буфера в http.c
    • [# 311101] Проблемы с именами выходных файлов
    • [# 310637] сбой, когда HTTP 302 перенаправляет его на FTP-адрес

    Учитывая, сколько времени прошло без движения по этим вопросам, я считаю, что этот проект мертв. Он может по-прежнему использоваться, но его никто не управляет.

    Это не так уж необычно в мире с открытым исходным кодом и на самом деле делает эту модель лицензирования уникальной в том смысле, что вы можете получить исходный код в проекте в этом состоянии и продолжать использовать его и поддерживать его самостоятельно.

    Исходный код для этого проекта можно легко загрузить через svn . Репозиторий кода проекта:

    Загрузка и компиляция

    Вы можете загрузить копию репозитория следующим образом:

     $ svn co svn://svn.debian.org/svn/axel/ 

    В моем блоке Fedora 19 код настраивается и компилируется идеально, поэтому этот проект действительно находится в хорошем состоянии, если нужно будет изменить базу кода.

    конфигурировать

     $ ./configure Configuration done: Internationalization enabled. Debugging disabled. Binary stripping enabled. 

    делать

     $ make msgfmt -vo nl.mo nl.po 40 translated messages, 6 fuzzy translations, 4 untranslated messages. msgfmt -vo de.mo de.po 46 translated messages, 4 fuzzy translations. msgfmt -vo ru.mo ru.po 46 translated messages, 2 fuzzy translations, 2 untranslated messages. msgfmt -vo zh_CN.mo zh_CN.po 42 translated messages, 6 fuzzy translations, 2 untranslated messages. gcc -c axel.c -o axel.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall gcc -c conf.c -o conf.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall gcc -c conn.c -o conn.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall gcc -c ftp.c -o ftp.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall gcc -c http.c -o http.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall gcc -c search.c -o search.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall gcc -c tcp.c -o tcp.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall gcc -c text.c -o text.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall gcc *.o -o axel -pthread strip axel 

    Я смог скомпилировать его и получил совершенно полезный бинарный axel .

     $ ls -l | grep "axel$" -rwxrwxr-x. 1 saml saml 35816 Dec 14 21:56 axel 

    Изменение базы кода?

    Раздел кода, который, я считаю, вы хотите сосредоточить, будет здесь, в файле conn.c :

      conn_exec( conn ); conn_disconnect( conn ); /* Code 3xx == redirect */ if( conn->http->status / 100 != 3 ) break; if( ( t = http_header( conn->http, "location:" ) ) == NULL ) return( 0 ); sscanf( t, "%255s", s ); if( strstr( s, "://" ) == NULL) { sprintf( conn->http->headers, "%s%s", conn_url( conn ), s ); strncpy( s, conn->http->headers, MAX_STRING ); } 

    C / C ++ не является моим родным «языком», поэтому я должен был бы начать с запуска этого кода через gdb (например, GNU Debugger) или вставить некоторые инструкции printf в этом разделе, чтобы узнать, что происходит, когда axel обращается к URL-адресам, которые вы с проблемой.

    Linux и Unix - лучшая ОС в мире.