• Модуль: clouds
  • Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage.php
  • Класс: CCloudStorage
  • Вызов: CCloudStorage::OnFileDelete
static function OnFileDelete($arFile)
{
	global $DB;

	if ($arFile["HANDLER_ID"] <= 0)
		return false;

	$bucket = new CCloudStorageBucket($arFile["HANDLER_ID"]);
	if ((!$bucket->Init()) || ($bucket->READ_ONLY === "Y"))
		return false;

	$result = $bucket->DeleteFile("/".$arFile["SUBDIR"]."/".$arFile["FILE_NAME"]);
	if ($result)
		$bucket->DecFileCounter($arFile["FILE_SIZE"]);

	$path = '/resize_cache/'.$arFile["ID"]."/";
	$arCloudFiles = $bucket->ListFiles($path, true);
	if (is_array($arCloudFiles["file"]))
	{
		$delete_size = 0;
		foreach ($arCloudFiles["file"] as $i => $file_name)
		{
			$tmp = $bucket->DeleteFile($path.$file_name);
			if ($tmp)
			{
				$bucket->DecFileCounter($arCloudFiles["file_size"][$i]);
				$delete_size += $arCloudFiles["file_size"][$i];
			}
		}
		/****************************** QUOTA ******************************/
		if($delete_size > 0 && COption::GetOptionInt("main", "disk_space") > 0)
			CDiskQuota::updateDiskQuota("file", $delete_size, "delete");
		/****************************** QUOTA ******************************/
	}

	$DB->Query("
		DELETE FROM b_clouds_file_resize
		WHERE FILE_ID = ".intval($arFile["ID"])."
	", true);

	BitrixCloudsFileHashTable::deleteByFilePath($bucket->ID, "/".$arFile["SUBDIR"]."/".$arFile["FILE_NAME"]);

	return $result;
}