2012-02-03 3 views
1

Я хочу разработать менеджер загрузки, поддерживающий сегментированную загрузку. Итак, я ищу библиотеку, поддерживающую ее. Просьба дать предложения относительно лучшей библиотеки, доступной на платформе Linux, которая может служить цели.Linux library for segmented загрузить

ответ

1

Любая библиотека, поддерживающая пользовательские заголовки HTTP, такие как libcurl, будет работать.

Необходимо создать несколько потоков. В каждом потоке установите поле Range в заголовке запроса, чтобы указать, какую часть файла нужно загружать в этот поток.

И для libcurl специально вы можете использовать опцию CURLOPT_RANGE для частичной загрузки файла.

Просмотреть форму описания libcurldocumentation.

CURLOPT_RANGE

Pass полукокса * в качестве параметра, который должен содержать указанный диапазон, который вы хотите. Он должен быть в формате «X-Y», где X или Y могут быть опущены. Передачи HTTP также поддерживают несколько интервалов, разделенных запятыми, как в «X-Y, N-M». Использование такого рода нескольких интервалов приведет к тому, что HTTP-сервер отправит ответный документ в куски (используя стандартные методы разделения MIME). Для RTSP форматирование диапазона должно соответствовать RFC 2326 Раздел 12.29. Для RTSP диапазоны байтов не допускаются. Вместо этого диапазоны следует указывать в форматах npt, utc или smpte.

Передайте NULL этой опции, чтобы отключить использование диапазонов.

Диапазоны работают только по HTTP, FTP, FILE (начиная с версии 7.18.0) и RTSP (начиная с 7.20.0).

+1

Я считаю, что поле заголовка запроса является 'Range' not' Content-Range' [ref] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2) и [см. также] (http://stackoverflow.com/questions/716680/difference-between-content-range-and-range-headers) – fajran

+0

@fajran спасибо, я исправил ответ. –

+0

thanx ребята. очень признателен. –