fix(upload): MiB/MB 단위 혼용 해소 + 용량 초과 스킵 토스트 반영
Caddy `request_body max_size 100MB`가 go-humanize SI(100,000,000 바이트)로 파싱되는데 클라이언트 pre-check는 `100 * 1024 * 1024`(104,857,600 바이트, MiB)로 비교해 100,000,001–104,857,600 바이트 구간 파일이 사전 차단을 통과한 뒤 서버에서 413을 받던 문제를 수정. 표시 라벨도 `/1024/1024`로 나누고 'MB'라 적어 경계값 파일이 "100MB 초과 … (100.0MB)" 같은 모순 문구를 노출했음. 요약 토스트가 사전 차단된 파일(`tooLarge`)을 카운트에서 제외해 드롭 수량과 불일치하던 문제도 함께 정리. `N건 용량 초과 스킵`을 tail로 붙이고, 전부 스킵된 경우엔 추가 토스트 없이 기존 에러 토스트만 유지. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,9 +6,9 @@
|
||||
|
||||
let { onupload = () => {} } = $props();
|
||||
|
||||
// home-caddy `request_body max_size 100MB` (infra_inventory.md D8 / Cloudflare 섹션 참조).
|
||||
// home-caddy `request_body max_size 100MB` (go-humanize SI 기준 100,000,000 바이트).
|
||||
// 100MB 초과 파일은 NAS PKM 폴더 직접 마운트 → file_watcher 5분 간격 자동 인덱싱 경로 사용.
|
||||
const MAX_UPLOAD_BYTES = 100 * 1024 * 1024;
|
||||
const MAX_UPLOAD_BYTES = 100 * 1000 * 1000;
|
||||
const NAS_FALLBACK_HINT = '대용량 파일은 NAS의 PKM 폴더에 직접 두면 file_watcher 가 5분 이내에 자동 인덱싱합니다.';
|
||||
|
||||
let dragging = $state(false);
|
||||
@@ -70,7 +70,7 @@
|
||||
|
||||
if (tooLarge.length > 0) {
|
||||
const names = tooLarge
|
||||
.map(f => `${f.name} (${(f.size / 1024 / 1024).toFixed(1)}MB)`)
|
||||
.map(f => `${f.name} (${(f.size / 1000 / 1000).toFixed(1)}MB)`)
|
||||
.join(', ');
|
||||
addToast(
|
||||
'error',
|
||||
@@ -112,11 +112,16 @@
|
||||
uploadFiles = [...uploadFiles];
|
||||
}
|
||||
|
||||
const skipped = tooLarge.length;
|
||||
const tail =
|
||||
(failed > 0 ? `, ${failed}건 실패` : '') +
|
||||
(skipped > 0 ? `, ${skipped}건 용량 초과 스킵` : '');
|
||||
|
||||
if (success > 0) {
|
||||
addToast('success', `${success}건 업로드 완료${failed > 0 ? `, ${failed}건 실패` : ''}`);
|
||||
addToast('success', `${success}건 업로드 완료${tail}`);
|
||||
onupload();
|
||||
} else {
|
||||
addToast('error', `업로드 실패 (${failed}건)`);
|
||||
} else if (failed > 0) {
|
||||
addToast('error', `업로드 실패 (${failed}건)${skipped > 0 ? `, ${skipped}건 용량 초과 스킵` : ''}`);
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
|
||||
Reference in New Issue
Block a user