CloudCastle Curl

SegmentedDownload
in package

FinalYes

Ускоренная загрузка файла параллельными диапазонами (`Range`).

Узнаёт размер файла запросом HEAD и, если сервер поддерживает диапазоны (Accept-Ranges: bytes), качает его $segments частями одновременно через Pool. Каждая часть пишется прямо в файл назначения по своему смещению — без временных файлов и склейки, память не растёт с размером файла. Если диапазоны не поддерживаются или файл меньше числа частей, выполняется обычная потоковая загрузка одним запросом.

Table of Contents

Methods

__construct()  : mixed
download()  : int
Скачать файл в указанный путь.

Methods

__construct()

public __construct(Client $client[, positive-int $segments = 4 ]) : mixed
Parameters
$client : Client

клиент, выполняющий запросы

$segments : positive-int = 4

число параллельных частей

download()

Скачать файл в указанный путь.

public download(string $url, string $destination) : int
Parameters
$url : string

адрес файла

$destination : string

путь назначения

Tags
throws
CurlException

если файл не открывается, часть не загрузилась или сервер вернул не диапазон

Return values
int —

размер файла в байтах

On this page

Search results