• Модуль: 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;
	}
}