• Модуль: clouds
  • Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage_service_s3.php
  • Класс: CCloudStorageService_S3
  • Вызов: CCloudStorageService_S3::UploadPartNo
function UploadPartNo($arBucket, &$NS, $data, $part_no)
{
	$filePath = '/'.trim($NS["filePath"], '/');
	if($arBucket["PREFIX"])
	{
		if(mb_substr($filePath, 0, mb_strlen($arBucket["PREFIX"]) + 2) != "/".$arBucket["PREFIX"]."/")
			$filePath = "/".$arBucket["PREFIX"].$filePath;
	}
	$filePath = CCloudUtil::URLEncode($filePath, "UTF-8", true);

	$this->SetLocation($arBucket["LOCATION"]);
	$this->SendRequest(
		$arBucket["SETTINGS"],
		'PUT',
		$arBucket["BUCKET"],
		$filePath,
		'?partNumber='.($part_no + 1).'&uploadId='.rawurlencode($NS["UploadId"]),
		$data
	);

	if($this->status == 200 && is_array($this->headers))
	{
		foreach ($this->headers as $key => $value)
		{
			if (mb_strtolower($key) === "etag")
			{
				$NS["Parts"][$part_no] = $value;
				return true;
			}
		}
	}

	if (defined("BX_CLOUDS_ERROR_DEBUG"))
	{
		AddMessage2Log($this);
	}
	return false;
}