• Модуль: clouds
  • Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage_service_google.php
  • Класс: CCloudStorageService_GoogleStorage
  • Вызов: CCloudStorageService_GoogleStorage::FileCopy
function FileCopy($arBucket, $arFile, $filePath)
{
	global $APPLICATION;

	if($arBucket["PREFIX"])
	{
		if(mb_substr($filePath, 0, mb_strlen($arBucket["PREFIX"]) + 2) != "/".$arBucket["PREFIX"]."/")
			$filePath = "/".$arBucket["PREFIX"]."/".ltrim($filePath, "/");
	}

	$response = $this->SendRequest(
		$arBucket["SETTINGS"]["ACCESS_KEY"],
		$arBucket["SETTINGS"]["SECRET_KEY"],
		'PUT',
		$arBucket["BUCKET"],
		CCloudUtil::URLEncode($filePath, "UTF-8", true),
		'',
		'',
		array(
			"x-goog-acl"=>"public-read",
			"x-goog-copy-source"=>CCloudUtil::URLEncode("/".$arBucket["BUCKET"]."/".($arBucket["PREFIX"]? $arBucket["PREFIX"]."/": "").($arFile["SUBDIR"]? $arFile["SUBDIR"]."/": "").$arFile["FILE_NAME"], "UTF-8", true),
			"Content-Type"=>$arFile["CONTENT_TYPE"]
		)
	);

	if($this->status == 200)
	{
		return $this->GetFileSRC($arBucket, $filePath);
	}
	else//if($this->status == 404)
	{
		if (defined("BX_CLOUDS_ERROR_DEBUG"))
		{
			AddMessage2Log($this);
		}
		$APPLICATION->ResetException();
		return false;
	}
}