Clarify storage limits and unify file metadata displays
This commit is contained in:
16
deploy.md
16
deploy.md
@@ -240,7 +240,7 @@ NAS 파일 관리자에서 **공유 폴더 → docker → projects → apps →
|
||||
- **다운로드 실패·수신자 이탈:** 이미 저장된 원본은 바로 삭제되지 않습니다. 받은 항목에 저장된 파일은 로그인 후 만료 전에 다시 다운로드할 수 있습니다. 개인 용량 초과로 받은 항목에 저장되지 않았거나 비로그인으로 받은 경우, 사이트를 떠난 뒤 이전 다운로드를 다시 찾는 UI는 제공하지 않습니다. 이때는 다시 전송하는 방법을 사용합니다. 다운로드 시작 표시는 기기에 저장이 끝났다는 확인을 의미하지 않습니다.
|
||||
- **업로드 도중 이탈:** 완료되지 않은 업로드는 받은 항목에 생성되지 않습니다. 취소된 조각은 제거하며, 남은 미완료·고아 업로드는 기본 24시간 후 정리합니다. 브라우저를 떠난 뒤 자동 전송·자동 다운로드 재개는 보장하지 않습니다.
|
||||
- **만료·삭제:** 기본 보관 기간은 항목별 7일이며, 정리 작업은 약 1분 간격입니다. 같은 원본을 사용하는 유효 접근 권한이 하나라도 남아 있으면 유지합니다. 모두 만료·삭제되면 삭제 실행 취소 시간 이후 원본을 제거합니다. 재배포·재시작만으로 파일이 삭제되지는 않습니다.
|
||||
- **관리자 접근:** NAS·Docker 볼륨과 DB를 읽을 권한이 있는 관리자는 파일과 연결 정보를 확인할 수 있습니다. 종단 간 암호화나 파일 자체 암호화는 적용하지 않습니다. 앱의 서비스 관리 화면에서는 인증된 `hello@noname.company`만 파일 메타데이터와 최근 지역/IP를 조회·원본 삭제할 수 있습니다. 파일 내용을 내려받는 관리자 API는 제공하지 않으며 일반 계정은 허용된 본인 항목만 조회할 수 있습니다.
|
||||
- **관리자 접근:** NAS·Docker 볼륨과 DB를 읽을 권한이 있는 관리자는 파일과 연결 정보를 확인할 수 있습니다. 종단 간 암호화나 파일 자체 암호화는 적용하지 않습니다. 앱의 서비스 관리 화면에서는 인증된 `hello@noname.company`만 파일 메타데이터와 파일별 접속 지역/IP를 조회·원본 삭제할 수 있습니다. 파일 내용을 내려받는 관리자 API는 제공하지 않으며 일반 계정은 허용된 본인 항목만 조회할 수 있습니다.
|
||||
|
||||
개인 한도가 차도 **수신·다운로드는 계속**합니다. 새로 받은 파일은 받은 항목에 저장하지 않고 짧은 안내를 표시합니다. 직접 저장은 용량 부족 시 거절합니다. 링크·메모는 파일 용량 합계에 포함하지 않습니다. 기존 10GiB 기본값은 설정 스크립트가 2GiB로 바꾸며, 다른 값으로 조정한 설정과 기존 자료는 유지합니다.
|
||||
|
||||
@@ -479,9 +479,9 @@ sed -i -e 's/^GUEST_REQUESTS_PER_MINUTE=5$/GUEST_REQUESTS_PER_MINUTE=30/' -e 's/
|
||||
|
||||
이메일 인증을 완료한 `hello@noname.company` 계정으로 로그인한 뒤 **더보기 → 관리자**를 선택합니다. 별도의 관리자 비밀번호나 환경변수 없이 이 정확한 활성·인증 계정만 권한을 갖습니다. 서버에서도 권한을 검사하며 다른 일반 계정에는 메뉴와 API를 제공하지 않습니다.
|
||||
|
||||
저장 파일의 업로드 주체·최근 제공 지역/IP·만료일, 전체 사용량·예약량·디스크 여유와 현재 업로드를 확인할 수 있습니다. 원본 삭제는 확인창을 거치며 모든 사용자의 연결된 항목도 무효화합니다. 이미 응답 중인 다운로드까지 회수하는 기능은 아닙니다. 관리 화면의 지역은 해당 업로드 주체의 최근 기록이며 모든 파일마다 정확한 위치를 추적한 정보는 아닙니다.
|
||||
저장 파일의 업로드 주체·파일별 접속 지역/IP·만료일, 전체 사용량·예약량·디스크 여유와 현재 업로드를 확인할 수 있습니다. 원본 삭제는 확인창을 거치며 모든 사용자의 연결된 항목도 무효화합니다. 이미 응답 중인 다운로드까지 회수하는 기능은 아닙니다. 관리 화면의 지역은 각 파일의 최초 전송 요청 당시 전달된 IP 기반 추정 정보입니다. 이후 다른 파일을 올린 지역으로 덮어쓰지 않습니다. 같은 요청의 여러 파일에는 같은 정보를 사용합니다.
|
||||
|
||||
**접속 · 용량 설정**에서 동시 업로드 1~16개와 전체 파일 저장 한도 1~1024GiB를 변경합니다. 기본은 4개·20GiB이고, 업로드 요청은 같은 계정/기기 주체당 동시에 최대 2개만 처리합니다. 기존 개인·기기 용량 제한, 파일당 크기 제한, 최소 5GiB 디스크 여유와 전송 요청 제한도 유지합니다. 업로드 본문을 읽기 전에 서버 전체 동시 요청 제한을 적용하고, 들어오는 HTTP 요청에 5분 타임아웃을 적용합니다. 큰 파일은 기존 8MiB 조각 전송을 사용합니다.
|
||||
**접속 · 용량 설정**에서 동시 업로드 1~16개와 전체 파일 저장 한도를 변경합니다. 화면은 GB(1,000 단위)를 사용하며, 서버 설정 범위인 1~1024GiB는 화면에서 약 1.1~1099.5GB에 해당합니다. 기본은 4개·20GiB이고, 업로드 요청은 같은 계정/기기 주체당 동시에 최대 2개만 처리합니다. 기존 개인·기기 용량 제한, 파일당 크기 제한, 최소 5GiB 디스크 여유와 전송 요청 제한도 유지합니다. 업로드 본문을 읽기 전에 서버 전체 동시 요청 제한을 적용하고, 들어오는 HTTP 요청에 5분 타임아웃을 적용합니다. 큰 파일은 기존 8MiB 조각 전송을 사용합니다.
|
||||
|
||||
**신규 업로드 중지**는 새 파일 전송·임시 저장을 거절합니다. 중지 전에 수락한 파일, 이미 저장된 원본의 재전송·다운로드, 링크·텍스트 전송은 계속됩니다. 한도를 낮춰도 기존 자료를 자동 삭제하지 않습니다.
|
||||
|
||||
@@ -497,3 +497,13 @@ sudo docker compose -f docker-compose.yaml up -d --build
|
||||
```
|
||||
|
||||
앱의 업로드 제한과 차단은 저장 공간·동시 작업을 보호하지만 앱에 도달하기 전의 대규모 트래픽 공격까지 해결하지는 않습니다. 필요하면 Cloudflare 등 앞단의 접근·요청 제한도 함께 적용합니다.
|
||||
|
||||
## 파일별 접속 정보와 공통 표시 업데이트
|
||||
|
||||
`file_upload_contexts` 테이블을 자동 추가하여 각 원본 파일의 최초 전송 요청 정보를 보관합니다. 새 요청을 다른 IP/지역에서 보내거나 재시도해도 기존 파일의 정보는 바뀌지 않습니다. 기존 파일은 소유자 정보의 동일 요청 ID 기록이 있을 때만 복구하며 다른 요청의 최신 지역은 사용하지 않습니다. 기록은 기본 최대 7일이고 파일 실패·삭제 시에도 약 1분 주기 정리에서 제거합니다. 관리자 외의 전송·보관함 API에는 노출하지 않습니다.
|
||||
|
||||
관리자 이름은 대괄호로 감싸고, 만료일은 관리자·보관함 모두 `[보관 만료] 2026년 10월 22일 11:02 까지` 형식의 한국 시간으로 표시합니다. 푸터의 발견 허용 문구는 숨깁니다. 용량은 모든 화면에서 KB/MB/GB(1,000 단위)로 통일하며 실제 파일 한도·개인별 한도·서버 전체 한도는 그대로입니다. `.env` 용량 값의 MiB 기준은 유지하고 관리자 화면의 전체 용량 입력은 GB로 환산합니다. 반올림된 GB를 수정하지 않았다면 다른 설정을 저장해도 원래 한도를 보존합니다.
|
||||
|
||||
Compose 변경이나 DB 초기화 없이 평소처럼 Git pull 후 `sudo docker compose -f docker-compose.yaml up -d --build`로 적용합니다.
|
||||
|
||||
관리자 한도 설명에는 실제 서버의 계정별 보관함·기기 세션별 업로드·기기 세션 전체 업로드·파일당 크기·NAS 최소 여유 공간을 각각 표시합니다. 전체 파일 한도는 모두가 공유하며 개인에게 같은 양을 배정하지 않습니다. 기본값 2GiB는 약 2.1GB, 최소 여유 5GiB는 약 5.4GB, 전체 20GiB는 약 21.5GB로 표시됩니다. 이 값은 각 NAS의 기존 `.env`와 저장된 관리 설정을 따르며 이번 표시 변경으로 값을 재설정하지 않습니다.
|
||||
|
||||
Reference in New Issue
Block a user