connect_error) { die("Connection failed: " . $mysqli->connect_error); } $mysqli->set_charset("utf8"); echo "=== Проверка файла 394503 ===\n\n"; // Получаем данные файла $query = "SELECT notesid, title, filename, filetype, filesize, s3_key, s3_bucket, s3_etag, nc_path FROM vtiger_notes WHERE notesid = 394503"; $result = $mysqli->query($query); if ($result && $result->num_rows > 0) { $row = $result->fetch_assoc(); echo "✅ Файл найден:\n"; echo "ID: " . $row['notesid'] . "\n"; echo "Название: " . $row['title'] . "\n"; echo "URL: " . $row['filename'] . "\n"; echo "Тип: " . $row['filetype'] . "\n"; echo "Размер: " . $row['filesize'] . " байт\n"; echo "S3 Key: " . ($row['s3_key'] ?: 'NULL') . "\n"; echo "S3 Bucket: " . ($row['s3_bucket'] ?: 'NULL') . "\n"; echo "S3 ETag: " . ($row['s3_etag'] ?: 'NULL') . "\n"; echo "NC Path: " . ($row['nc_path'] ?: 'NULL') . "\n\n"; // Проверяем доступность файла if (!empty($row['filename']) && strpos($row['filename'], 'https://s3.twcstorage.ru') !== false) { echo "Проверка доступности файла...\n"; $headers = @get_headers($row['filename'], 1); if ($headers && strpos($headers[0], '200') !== false) { echo "✅ Файл доступен (HTTP 200)\n"; } elseif ($headers && strpos($headers[0], '403') !== false) { echo "❌ Файл запрещен (HTTP 403) - проблема с правами доступа\n"; } elseif ($headers && strpos($headers[0], '404') !== false) { echo "❌ Файл не найден (HTTP 404) - файл отсутствует в S3\n"; } else { echo "❓ Неизвестная ошибка: " . ($headers[0] ?? 'Нет ответа') . "\n"; } // Пробуем разные варианты URL для исправления if ($headers && strpos($headers[0], '200') === false && !empty($row['s3_key']) && !empty($row['s3_bucket'])) { echo "\nПопытка исправления URL...\n"; // Вариант 1: Правильная кодировка S3 ключа $encoded_key = implode('/', array_map('rawurlencode', explode('/', $row['s3_key']))); $correct_url = "https://s3.twcstorage.ru/" . $row['s3_bucket'] . "/" . $encoded_key; echo "Правильный URL: " . $correct_url . "\n"; $correct_headers = @get_headers($correct_url, 1); if ($correct_headers && strpos($correct_headers[0], '200') !== false) { echo "✅ Правильный URL работает!\n"; // Предлагаем исправление echo "\nХотите исправить URL? (y/n): "; // В реальном скрипте здесь можно добавить автоматическое исправление } else { echo "❌ Правильный URL тоже не работает\n"; } } } else { echo "⚠️ Нестандартный URL или отсутствует URL\n"; } // Проверяем связанные записи echo "\nПроверка связанных записей...\n"; $related_query = "SELECT crmid, label FROM vtiger_crmentity ce INNER JOIN vtiger_senotesrel snr ON ce.crmid = snr.crmid WHERE snr.notesid = 394503"; $related_result = $mysqli->query($related_query); if ($related_result && $related_result->num_rows > 0) { echo "Связанные записи:\n"; while ($rel_row = $related_result->fetch_assoc()) { echo "- ID: " . $rel_row['crmid'] . " - " . $rel_row['label'] . "\n"; } } else { echo "Связанные записи не найдены\n"; } } else { echo "❌ Файл 394503 не найден в базе данных\n"; } $mysqli->close(); echo "\n=== Проверка завершена ===\n"; ?>