- Модуль: clouds
- Путь к файлу: ~/bitrix/modules/clouds/lib/filehash.php
- Класс: BitrixCloudsFileHashTable
- Вызов: FileHashTable::copyToFileHash
static function copyToFileHash($lastKey, $pageSize)
{
$lastKey = (int)$lastKey;
$pageSize = (int)$pageSize;
$sql = "
SELECT
b_file.ID as FILE_ID
,b_clouds_file_hash.FILE_SIZE as FILE_SIZE
,b_clouds_file_hash.FILE_HASH as FILE_HASH
FROM
b_file
INNER JOIN b_clouds_file_hash ON
b_clouds_file_hash.BUCKET_ID = b_file.HANDLER_ID
AND b_clouds_file_hash.FILE_PATH = concat('/', b_file.SUBDIR, '/', b_file.FILE_NAME)
LEFT JOIN b_file_duplicate ON
b_file_duplicate.DUPLICATE_ID = b_file.ID
WHERE
b_file.ID > " . $lastKey . "
AND b_file_duplicate.DUPLICATE_ID is null
ORDER BY b_file.ID
LIMIT " . $pageSize . "
";
$connection = BitrixMainApplication::getConnection();
$fileIds = $connection->query('
SELECT
min(FILE_ID) as FILE_ID_MIN
,max(FILE_ID) as FILE_ID_MAX
,count(FILE_ID) FILE_ID_CNT
FROM (' . $sql . ') t
')->fetch();
if ($fileIds['FILE_ID_CNT'] > 0)
{
$connection->queryExecute('INSERT IGNORE INTO b_file_hash '.$sql);
}
return $fileIds;
}