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

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

		if($obBucket == null)
			$obBucket = new CCloudStorageBucket(intval($ar["BUCKET_ID"]));

		if(!$obBucket->Init())
		{
			$APPLICATION->ThrowException(GetMessage('CLO_STORAGE_UPLOAD_ERROR', array('#errno#'=>3)));
			return false;
		}

		$service = $obBucket->GetService();
		if (!is_callable(array($service, 'UploadPartNo')))
		{
			$APPLICATION->ThrowException(GetMessage('CLO_STORAGE_UPLOAD_ERROR', array('#errno#'=>4)));
			return false;
		}

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

		if (!$bSuccess)
		{
			$error = $obBucket->GetService()->formatError();
			if ($error)
			{
				$APPLICATION->ThrowException($error);
			}
		}

		if (!$this->UpdateProgress($arUploadInfo, $bSuccess))
		{
			$APPLICATION->ThrowException(GetMessage('CLO_STORAGE_UPLOAD_ERROR', array('#errno#'=>5)));
			return false;
		}

		return $bSuccess;
	}

	return false;
}