- Модуль: clouds
- Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage_service_openstack.php
- Класс: CCloudStorageService_OpenStackStorage
- Вызов: CCloudStorageService_OpenStackStorage::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, "/");
}
$fileSource = CCloudUtil::URLEncode("/".$arBucket["BUCKET"]."/".($arBucket["PREFIX"]? $arBucket["PREFIX"]."/": "").($arFile["SUBDIR"]? $arFile["SUBDIR"]."/": "").$arFile["FILE_NAME"], "UTF-8", true);
$this->SendRequest(
$arBucket["SETTINGS"],
"PUT",
$arBucket["BUCKET"],
CCloudUtil::URLEncode($filePath, "UTF-8", true),
'',
false,
array(
"X-Copy-From" => $fileSource,
)
);
if($this->status == 200 || $this->status == 201)
return $this->GetFileSRC($arBucket, $filePath);
else
return false;
}