• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/document/dropboxhandler.php
  • Класс: BitrixDiskDocumentDropboxHandler
  • Вызов: DropboxHandler::downloadPartFile
public function downloadPartFile(FileData $fileData, $startRange, $chunkSize)
{
	if(!$this->checkRequiredInputParams($fileData->toArray(), array(
		'id', 'src',
	)))
	{
		return null;
	}

	@set_time_limit(0);
	$http = new HttpClient(array(
		'socketTimeout' => 10,
		'streamTimeout' => 30,
		'version' => HttpClient::HTTP_1_1,
	));

	$endRange = $startRange + $chunkSize - 1;
	$http->setHeader('Range', "bytes={$startRange}-{$endRange}");
	$http->setHeader('Authorization', "Bearer {$this->getAccessToken()}");
	$http->setHeader('Dropbox-API-Arg', Json::encode(array(
		'path' => $fileData->getId(),
	)));

	if($http->download(self::API_CONTENT_URL . "/files/download", $fileData->getSrc()) === false)
	{
		$errorString = implode('; ', array_keys($http->getError()));
		$this->errorCollection->add(array(
			new Error($errorString, self::ERROR_HTTP_DOWNLOAD_FILE)
		));
		return null;
	}

	return $fileData;
}