Clarify storage limits and unify file metadata displays

This commit is contained in:
2026-10-15 11:23:33 +09:00
parent 3786baf60c
commit 471e2653d8
22 changed files with 401 additions and 84 deletions

View File

@@ -191,3 +191,11 @@
- 설정 변경은 DB 트랜잭션과 감사 이력으로 저장하고 변경 버전 충돌을 거절한다. DB 오류 롤백 뒤 적용 중 정책 보존과 별도 인스턴스 재로드, 관리 기록 30일 정리를 확인했다. 업로드 주체 정보는 마지막 원본/대기 업로드가 사라지면 제거하고 빈 사용자 폴더도 정리한다.
- API 123개·추가 페이지 이동/별도 계정 격리를 포함한 관리자 9개·전체 타입 검사와 빌드·포맷 검사를 통과했다. 실제 Chromium에서 관리자 전용 메뉴·일반 계정 API 403·지역/IP 표시·일시 중지/재개·규칙 저장·파일 삭제 확인과 이력·390px 모바일 배치/16px 입력·로그아웃 후 권한 제거를 확인했다. 기존 파일/링크 전송·보관함·주변 위치 검색·첫 파일 전송 재접속 브라우저 회귀도 통과했다.
- 최종 운영 Docker 이미지에서 추가 관리 테이블의 자동 마이그레이션, 관리자 인증과 설정 재시작 보존, 기존 파일/텍스트·세션·인증·8MiB 조각 재개·SQLite integrity·사용자별 경로·호스트 파일 수동 삭제를 확인했다. 격리 자원만 사용하고 종료 후 제거했다. `docker-compose.yaml`과 실제 NAS 컨테이너·볼륨·자료·Cloudflare 규칙은 변경하거나 재배포하지 않았다. 도시 정보는 Cloudflare 전달 설정이 있어야 제공되며 대규모 네트워크 공격은 별도 앞단 대응이 필요하다.
## 2026-10-15 관리자 표시·파일별 접속 기록·용량 표기 통일
- 관리자 업로드 주체 이름을 `[iPhone]`처럼 감싸고 관리자·보관함 만료일을 `[보관 만료] 2026년 10월 22일 11:02 까지` 형식으로 통일했다. 한국 시간·연도·24시간을 명시하며 자정의 00시와 실행 호스트 시간대 독립성을 검증했다. 푸터의 발견 허용/꺼짐 문구를 제거하고 자동 발견과 기기 이름·코드는 유지했다.
- 이전에 소유자 최신 지역을 표시하던 동작을 파일별 최초 요청의 지역/IP로 수정했다. 추가 테이블 `file_upload_contexts`에 파일별 스냅샷을 저장한다. 동일 기기의 대전/도쿄 두 실제 업로드가 각자 다른 정보를 유지하며, 재시도나 최근 20개 요약 교체로 이전 파일이 변경되지 않음을 확인했다. 동일 요청의 여러 파일은 같은 요청 정보를 사용한다. 기존 기록은 요청 ID가 일치할 때만 복원하고 없으면 확인 불가다. 기록의 기본 7일 만료·실패 파일 정리·일반 수신 API에 지역/IP 미노출을 확인했다.
- 전송 선택·수신 요청·보관함·관리자·텍스트 한도 안내를 공통 KB/MB/GB(1,000 단위) 표시로 바꿨다. 1MB 미만은 KB, 1MB/1GB 경계에서만 단위를 바꾸며 `938KB`, `1.1MB`, `1.7GB`로 표시한다. 0은 0KB, 1KB 미만은 별도로 안내한다. 저장 한도와 환경변수의 기존 MiB 기준은 유지하고, 관리자 전체 용량 입력은 GB로 환산했다. 반올림된 표시를 수정하지 않고 다른 규칙만 저장해도 원래 설정 용량이 바뀌지 않는 브라우저 검증을 추가했다.
- 관리자에게 계정별 보관함·기기 세션별 업로드·기기 전체 업로드·파일당 한도·NAS 최소 여유 공간의 실제 서버 설정값을 제공한다. 전체 한도는 사용자 모두의 원본·예약 합계이며 개인 배정량이 아님을 설명한다. 한도 부족 시 새 업로드 거절, 보관함이 가득 차면 수신/다운로드 후 기록 생략, 기존 자료 유지도 구분했다.
- API 126개와 한도 API 검증을 포함한 관리자 9개, 전체 빌드·타입 검사·포맷 검사를 통과했다. 실제 Chromium의 관리자 PC/390px 모바일·이름 대괄호/만료일·수신 KB/MB/GB·보관함·12기기 레이아웃/푸터 회귀 검증을 통과했다. 운영 Docker에서 새 테이블 마이그레이션과 재시작 후 파일별 접속 기록, 관리자 설정, 파일/Unicode 텍스트·계정 세션·8MiB 조각 재개·SQLite integrity·바인드 파일 수동 삭제를 검증했다. 격리 테스트 자원만 사용했으며 NAS 운영 자료·Compose 파일은 변경하거나 재배포하지 않았다.