Use visible NAS upload storage and reconcile missing files

This commit is contained in:
2026-10-13 15:54:27 +09:00
parent 50e54bc4c5
commit 9e0f493228
26 changed files with 1075 additions and 119 deletions

View File

@@ -146,8 +146,17 @@ function connect() {
])
socket.on(event, () => void refresh().catch(showError));
}
let errorTimer;
export function showError(err) {
error.value = err instanceof Error ? err.message : '처리 중 오류가 발생했습니다.';
clearTimeout(errorTimer);
const raw = err instanceof Error ? err.message : '처리 중 오류가 발생했습니다.';
const message = /^(Failed to fetch|NetworkError|Load failed)$/i.test(raw)
? '서버에 연결하지 못했어요. 잠시 후 다시 시도해 주세요.'
: raw;
error.value = message;
errorTimer = setTimeout(() => {
if (error.value === message) error.value = '';
}, 5000);
}
export const refresh = createRefreshQueue(async () => {
const snapshot = await api('/device/snapshot');
@@ -523,6 +532,12 @@ export async function undoDelete(id) {
await refresh();
}
export async function download(item) {
try {
await api(`/access/${item.accessId}`);
} catch (err) {
await refresh().catch(() => {});
throw err;
}
const a = document.createElement('a');
a.href = `/api/access/${item.accessId}/download`;
a.download = item.file?.name ?? '';