• Модуль: clouds
  • Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage_upload.php
  • Класс: CCloudStorageUpload
  • Вызов: CCloudStorageUpload::CleanUp
static function CleanUp($ID = '')
{
	global $DB;
	if ($ID)
	{
		$rs = $DB->Query("
			SELECT ID, BUCKET_ID, NEXT_STEP
			FROM b_clouds_file_upload
			WHERE ID = '".$DB->ForSql($ID)."'
		");
	}
	else
	{
		$days = COption::GetOptionInt("clouds", "multipart_upload_keep_days");
		if ($days > 0)
		{
			$seconds = $days * 3600 * 24;
			$delete_time = ConvertTimeStamp(time() - $seconds, 'FULL');
			$rs = $DB->Query("
				SELECT ID, BUCKET_ID, NEXT_STEP
				FROM b_clouds_file_upload
				WHERE TIMESTAMP_X < ".$DB->CharToDateFunction($delete_time)
			);
		}
	}

	while ($arBucket = $rs->Fetch())
	{
		$obBucket = new CCloudStorageBucket(intval($arBucket["BUCKET_ID"]));
		if ($obBucket->Init())
		{
			$arUploadInfo = unserialize($arBucket["NEXT_STEP"], ['allowed_classes' => false]);
			$service = $obBucket->GetService();
			$service->CancelMultipartUpload($obBucket->GetBucketArray(), $arUploadInfo);
		}
		$DB->Query("DELETE FROM b_clouds_file_upload WHERE ID = '".$DB->ForSql($arBucket["ID"])."'");
	}
}