- Модуль: clouds
- Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage_service_s3.php
- Класс: CCloudStorageService_S3
- Вызов: CCloudStorageService_S3::CompleteMultipartUpload
function CompleteMultipartUpload($arBucket, &$NS)
{
$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);
ksort($NS["Parts"]);
$data = "";
foreach($NS["Parts"] as $PartNumber => $ETag)
{
$data .= "".($PartNumber+1)."".$ETag."n";
}
if (
defined("BX_CLOUDS_COUNTERS_DEBUG")
&& !preg_match(BX_CLOUDS_COUNTERS_DEBUG, $filePath)
)
{
CCloudsDebug::getInstance("post")->startAction($filePath);
}
$this->SetLocation($arBucket["LOCATION"]);
$this->SendRequest(
$arBucket["SETTINGS"],
'POST',
$arBucket["BUCKET"],
$filePath,
'?uploadId='.rawurlencode($NS["UploadId"]),
"".$data.""
);
if (
defined("BX_CLOUDS_COUNTERS_DEBUG")
&& !preg_match(BX_CLOUDS_COUNTERS_DEBUG, $filePath)
)
{
CCloudsDebug::getInstance("post")->endAction();
}
if (
defined("BX_CLOUDS_COUNTERS_DEBUG")
&& $this->status == 200
&& !preg_match(BX_CLOUDS_COUNTERS_DEBUG, $filePath)
)
{
CCloudsDebug::getInstance()->startAction($filePath);
}
if ($this->status == 200)
{
return true;
}
else
{
if (defined("BX_CLOUDS_ERROR_DEBUG"))
{
AddMessage2Log($this);
}
return false;
}
}