67 lines
2.6 KiB
PHP
67 lines
2.6 KiB
PHP
<?php
|
||
/**
|
||
* Обновление n8n скрипта для игнорирования очищенных файлов
|
||
*/
|
||
|
||
echo "=== ОБНОВЛЕНИЕ N8N СКРИПТА ===\n";
|
||
|
||
// Читаем текущий скрипт
|
||
$scriptPath = '/var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/n8n_s3_migration.php';
|
||
$scriptContent = file_get_contents($scriptPath);
|
||
|
||
// Добавляем фильтр для игнорирования очищенных файлов
|
||
$newFilter = "
|
||
// Фильтр для игнорирования очищенных файлов
|
||
\$ignorePatterns = [
|
||
'empty_filename' => 'filename IS NULL OR filename = \'\'',
|
||
'zero_size' => 'filesize = 0',
|
||
'file_15_series' => 'filename LIKE \'file_15_%\'',
|
||
'duplicates_7_zayavlenie' => 'filename = \'7 заявление потребителя\''
|
||
];
|
||
|
||
// Добавляем фильтр в WHERE условие
|
||
\$whereConditions = [
|
||
\"filelocationtype = 'I'\",
|
||
\"(s3_key IS NULL OR s3_key = '')\"
|
||
];
|
||
|
||
// Исключаем очищенные файлы
|
||
foreach (\$ignorePatterns as \$pattern => \$condition) {
|
||
\$whereConditions[] = \"NOT (\$condition)\";
|
||
}
|
||
|
||
\$whereClause = implode(' AND ', \$whereConditions);
|
||
";
|
||
|
||
// Находим место для вставки (после подключения к БД)
|
||
$insertPoint = strpos($scriptContent, '// Поиск локальных файлов без S3 метаданных');
|
||
if ($insertPoint !== false) {
|
||
$beforeInsert = substr($scriptContent, 0, $insertPoint);
|
||
$afterInsert = substr($scriptContent, $insertPoint);
|
||
|
||
$newScriptContent = $beforeInsert . $newFilter . "\n" . $afterInsert;
|
||
|
||
// Обновляем SQL запрос
|
||
$newScriptContent = str_replace(
|
||
"WHERE (s3_key IS NULL OR s3_key = '')
|
||
AND filelocationtype = 'I'",
|
||
"WHERE $whereClause",
|
||
$newScriptContent
|
||
);
|
||
|
||
// Сохраняем обновленный скрипт
|
||
file_put_contents($scriptPath, $newScriptContent);
|
||
|
||
echo "✅ N8n скрипт обновлен!\n";
|
||
echo "Добавлены фильтры для игнорирования:\n";
|
||
echo " - Файлы с пустыми именами\n";
|
||
echo " - Файлы размером 0 байт\n";
|
||
echo " - Старые тестовые файлы (file_15_*)\n";
|
||
echo " - Дубликаты '7 заявление потребителя'\n";
|
||
} else {
|
||
echo "❌ Не удалось найти место для вставки фильтра\n";
|
||
}
|
||
|
||
echo "\n=== ОБНОВЛЕНИЕ ЗАВЕРШЕНО ===\n";
|
||
?>
|