- Модуль: clouds
- Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage_upload.php
- Класс: CCloudStorageUpload
- Вызов: CCloudStorageUpload::Start
function Start($bucket_id, $fileSize, $ContentType = 'binary/octet-stream', $tmpFileName = false)
{
global $DB;
global $APPLICATION;
if(is_object($bucket_id))
$obBucket = $bucket_id;
else
$obBucket = new CCloudStorageBucket(intval($bucket_id));
if(!$obBucket->Init())
return false;
if(!$this->isStarted())
{
$arUploadInfo = /*.(array[string]string).*/array();
$bStarted = $obBucket->GetService()->InitiateMultipartUpload(
$obBucket->GetBucketArray(),
$arUploadInfo,
$this->_filePath,
$fileSize,
$ContentType
);
if (!$bStarted && $obBucket->RenewToken())
{
$bStarted = $obBucket->GetService()->InitiateMultipartUpload(
$obBucket->GetBucketArray(),
$arUploadInfo,
$this->_filePath,
$fileSize,
$ContentType
);
}
if($bStarted)
{
$bAdded = $DB->Add("b_clouds_file_upload", array(
"ID" => $this->_ID,
"~TIMESTAMP_X" => $DB->CurrentTimeFunction(),
"FILE_PATH" => $this->_filePath,
"FILE_SIZE" => $fileSize,
"TMP_FILE" => $tmpFileName,
"BUCKET_ID" => intval($obBucket->ID),
"PART_SIZE" => $obBucket->GetService()->GetMinUploadPartSize(),
"PART_NO" => 0,
"PART_FAIL_COUNTER" => 0,
"NEXT_STEP" => serialize($arUploadInfo),
), array("NEXT_STEP"));
unset($this->_cache);
return $bAdded !== false;
}
else
{
$error = $obBucket->GetService()->formatError();
if ($error)
{
$APPLICATION->ThrowException($error);
}
else
{
$APPLICATION->ThrowException(GetMessage('CLO_STORAGE_UPLOAD_ERROR', array('#errno#'=>6)));
}
}
}
return false;
}