• Модуль: clouds
  • Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage_upload.php
  • Класс: CCloudStorageUpload
  • Вызов: CCloudStorageUpload::Finish
function Finish($obBucket = null)
{
	global $APPLICATION;

	if($this->isStarted())
	{
		$ar = $this->GetArray();

		if($obBucket == null)
			$obBucket = new CCloudStorageBucket(intval($ar["BUCKET_ID"]));
		if(!$obBucket->Init())
			return false;

		$arUploadInfo = unserialize($ar["NEXT_STEP"], ['allowed_classes' => false]);
		$bSuccess = $obBucket->GetService()->CompleteMultipartUpload(
			$obBucket->GetBucketArray(),
			$arUploadInfo
		);

		if ($bSuccess)
		{
			$this->Delete();

			if ($obBucket->getQueueFlag())
			{
				CCloudFailover::queueCopy($obBucket, $this->_filePath);
			}

			foreach(GetModuleEvents("clouds", "OnAfterCompleteMultipartUpload", true) as $arEvent)
			{
				ExecuteModuleEventEx($arEvent, array($obBucket, array("size" => $ar["FILE_SIZE"]), $this->_filePath));
			}
		}
		else
		{
			$error = $obBucket->GetService()->formatError();
			if ($error)
			{
				$APPLICATION->ThrowException($error);
			}
		}

		return $bSuccess;
	}

	return false;
}