- Модуль: clouds
- Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage_service_openstack.php
- Класс: CCloudStorageService_OpenStackStorage
- Вызов: CCloudStorageService_OpenStackStorage::SaveFile
function SaveFile($arBucket, $filePath, $arFile)
{
global $APPLICATION;
if($arBucket["PREFIX"])
{
if(mb_substr($filePath, 0, mb_strlen($arBucket["PREFIX"]) + 2) != "/".$arBucket["PREFIX"]."/")
$filePath = "/".$arBucket["PREFIX"]."/".ltrim($filePath, "/");
}
$filePath = CCloudUtil::URLEncode($filePath, "UTF-8", true);
if (array_key_exists("content", $arFile))
{
$this->SendRequest(
$arBucket["SETTINGS"],
"PUT",
$arBucket["BUCKET"],
$filePath,
"",
$arFile["content"],
array(
"Content-Type" => $arFile["type"],
"Content-Length" => strlen($arFile["content"]),
)
);
}
else
{
$this->SendRequest(
$arBucket["SETTINGS"],
"PUT",
$arBucket["BUCKET"],
$filePath,
"",
fopen($arFile["tmp_name"], "rb"),
array(
"Content-Type" => $arFile["type"],
"Content-Length" => filesize($arFile["tmp_name"]),
)
);
}
if($this->status == 201)
{
return true;
}
else
{
return false;
}
}