- Модуль: clouds
- Путь к файлу: ~/bitrix/modules/clouds/classes/general/failover.php
- Класс: CCloudFailover
- Вызов: CCloudFailover::queueCopy
static function queueCopy($obBucket, $FILE_PATH)
{
if (
$obBucket->FAILOVER_BUCKET_ID > 0
&& $obBucket->FAILOVER_COPY === "Y"
&& $obBucket->getQueueFlag()
)
{
if (
($obBucket->isFailoverEnabled() && CCloudFailover::IsEnabled())
&& ($obBucket->FAILOVER_ACTIVE === "Y")
)
{
$TARGET_BUCKET_ID = $obBucket->ID;
$SOURCE_BUCKET_ID = $obBucket->FAILOVER_BUCKET_ID;
}
else
{
$TARGET_BUCKET_ID = $obBucket->FAILOVER_BUCKET_ID;
$SOURCE_BUCKET_ID = $obBucket->ID;
}
BitrixCloudsCopyQueueTable::add(array(
"TIMESTAMP_X" => new BitrixMainTypeDateTime(),
"OP" => BitrixCloudsCopyQueueTable::OP_COPY,
"SOURCE_BUCKET_ID" => $SOURCE_BUCKET_ID,
"SOURCE_FILE_PATH" => $FILE_PATH,
"TARGET_BUCKET_ID" => $TARGET_BUCKET_ID,
"TARGET_FILE_PATH" => $FILE_PATH,
));
$deleteTasks = BitrixCloudsDeleteQueueTable::getList(array(
'select' => array('ID'),
'filter'=> array(
'=BUCKET_ID' => $TARGET_BUCKET_ID,
'=FILE_PATH' => $FILE_PATH,
),
));
while ($task = $deleteTasks->fetch())
{
BitrixCloudsDeleteQueueTable::delete($task['ID']);
}
}
}