Загружать вложения в 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 следующим образом:

Первый ответ всегда является перенаправлением. Расположение файла находится в заголовке «Местоположение». Клиент должен отправить новый запрос 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 ?

  • Запуск grep или других команд в файлах на веб-сервере
  • Как распаковать gzip-ответ HTTP?
  • Wget возвращает двоичный файл вместо html?
  • Разрешение DNS через HTTP / HTTPS
  • Активность сервера трассировки Apache для конкретного HTTP-запроса
  • Локальная DNS переписывает с хоста на хост для веб-запросов
  • Как создать файл deflate, подходящий для HTTP?
  • Ошибка «Конфликтующие версии» при запуске eggdrop
  • 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-адресам, которые вы с проблемой.

    Interesting Posts

    Проблема с разрешениями при совместном использовании смонтированной файловой системы

    Как использовать булевы в раковине?

    Есть ли способ запросить размер исходных файлов при загрузке с Debian?

    Debian netinstall over wifi?

    Как создать и выполнить скрипт bash, который вызывает исполняемый файл из более высокой папки?

    Удалите 50GB самых старых файлов в busybox, когда используемая емкость достигает 95%

    Воспроизведение локальных контекстов selinux после переустановки ОС

    получить общие файловые системы, работающие с virt-manager 1.3.2 в ubuntu 16.04 LTS

    Как установить тему значка GTK в i3?

    Настройка нескольких видеопотоков с точками публикации для клиентов

    Почему NOEXEC не предотвращает запуск указанной программы?

    udisks2 – acl не может получить права на запись для обычного пользователя

    Сетевое соединение / var с systemd

    Выполнение «вилочной бомбы» безопасно

    в чем преимущество -squeeze-repeat в команде tr

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