drhider: тест-режим 'только загрузка' (?upload-only=1) — ранний выход до Фазы 2 (без обработки) + debug-endpoint /api/session_files
This commit is contained in:
@@ -199,6 +199,8 @@ let overNames = new Set(); // имена файлов сверх лимита (
|
||||
const MAX_FILE_BYTES = 100 * 1024 * 1024; // 100 МБ на файл
|
||||
const MAX_SESSION_BYTES = 1024 * 1024 * 1024; // 1 ГБ суммарно
|
||||
const VM_UPLOAD_URL = 'https://contracts.kube5s.ru/drhider-upload/'; // ВМ-буфер: PUT больших файлов (шлюз кластера их рвёт)
|
||||
// Тест-режим: открыть страницу с ?upload-only=1 → только загрузка, без обработки
|
||||
const TEST_UPLOAD_ONLY = new URLSearchParams(location.search).get('upload-only') === '1';
|
||||
let currentSid = '';
|
||||
let activeES = null; // активный EventSource
|
||||
let activeXHR = null; // активный XHR
|
||||
@@ -438,6 +440,7 @@ async function uploadFiles() {
|
||||
// Фаза 1: загрузка на ВМ-буфер (PUT напрямую на nginx ВМ, минуя шлюз кластера)
|
||||
const token = crypto.randomUUID();
|
||||
const refs = []; // {name, size, url} — для POST /api/upload_refs
|
||||
let uploadedCount = 0; // сколько файлов реально легло в сессию (для тест-режима)
|
||||
for (let k = 0; k < total; k++) {
|
||||
const f = toSend[k];
|
||||
const i = sendIdx[k]; // индекс в sf для вывода прогресса
|
||||
@@ -494,6 +497,7 @@ async function uploadFiles() {
|
||||
const data = await resp.json();
|
||||
if (!data.ok) throw new Error(data.error || 'HTTP ' + resp.status);
|
||||
currentSid = data.session;
|
||||
uploadedCount = data.count || refs.length;
|
||||
} catch (err) {
|
||||
st.className = 'status error';
|
||||
st.textContent = 'Ошибка передачи ссылок: ' + err.message;
|
||||
@@ -501,6 +505,14 @@ async function uploadFiles() {
|
||||
return;
|
||||
}
|
||||
|
||||
// Тест-режим (?upload-only=1): только загрузка, без обработки
|
||||
if (TEST_UPLOAD_ONLY) {
|
||||
st.className = 'status done';
|
||||
st.textContent = '✅ Загружено ' + uploadedCount + ' файлов (тест: обработка пропущена). Сессия: ' + currentSid;
|
||||
ub.disabled = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// Фаза 2: обработка (SSE — прогресс по каждому файлу)
|
||||
// Сброс загрузочных статусов — теперь этап обработки (только отправленные)
|
||||
for (let k = 0; k < total; k++) ss(sendIdx[k], '<span style="color:#2563eb">⏳</span>');
|
||||
|
||||
Reference in New Issue
Block a user