용량 최적화 작업 리뷰 : 홈페이지 드라이브 업로드 파일 옮기기 최적화 시도 테스트 현황
ㄴ 이 부분은 제가 좀 더 파일 잘못된거 없는지 분석해보겠습니다.
모듈 소개 : 첨부파일 외부 저장소 이동
========================= 패치 계획 ======================
일단 로컬사용자 기준으로
드라이브 추가 , 용량 표시,
1순위 드라이브 용량 가득찼을때 2순위 드라이브에 저장
기존 1순위 드라이브에 있는 파일은 그대로 두기
도중에 2순위 드라이브로 저장하기
1순위 드라이브에 용량을 일정량을 지나면 자동으로 2순위 드라이브에 저장되게 하기
1. 로컬 사용자도 쓰고 복수 선택으로 s3 도 ftp도 가능하면 좋을뜻 합니다.
2. 저장 순위 설정 로컬 > s3 > FTP
S3 설정 https://dash.cloudflare.com/ 클라우드 서비스 사용 가능
=완료=
=미완료=
===================================================
FTP 도 별도 준비를 하겠습니다.
================== 아직 확인 안 된 사항 =================
로컬은 제가 사용하는 입장이라 잘 되는거 같습니다만,
s3 와 ftp 는 확인을 못했습니다.
지금 이렇게 바꾼 이유?
제가 s3 &FTP 를 추가하여 제가 먼저 (테스터) 사용해 보려고 합니다.

불패의초인
Lv. 3
반갑습니다 비에스플러스 라는 사이트를 운영하는 사람입니다.
댓글 1
s3 업로드 시도중 문제가 발생하여 수정하였고 이제는 잘 됩니당~
==================================================================
## v1.2.1 (2026-07-23)
### 중요 수정 (실제 R2 연동 테스트로 발견)
- **설정 저장이 조용히 막히던 버그**: 우선순위에 넣은 저장소(예: 3순위 FT
P)의 세부 정보(호스트 등)를 아직 안 채웠으면 저장 자체를 막고 있었음 — 실
제로는 업로드 시점에 그 저장소를 자동으로 건너뛰도록 이미 설계되어 있어서
저장을 막을 이유가 없었음. 이제 항상 저장되고, 정보가 부족한 저장소가 있
으면 참고 메시지만 표시.
- **S3로 이동된 파일이 게시글 본문에서 깨지던 버그**: 다운로드 버튼 경로
에는 S3 signed URL 리다이렉트를 넣었지만, 게시글 본문 `<img>` 등 정적 서
빙 폴백 경로(`triggerCheckServeFile`)에는 그 로직이 빠져있었음. 문서 HTML
은 파일이 이동된 뒤에도 최초 저장 당시의 로컬 URL을 그대로 갖고 있어서(자
동으로 재작성되지 않음) 이 경로가 반드시 필요했음. `moduleHandler.init`
폴백에도 동일한 signed/공개 URL 리다이렉트 로직 추가.
- **S3 "공개 URL" 옵션이 실제로는 동작하지 않던 문제**: 관리자 화면에 "공
개 URL" 선택지와 "공개 URL 베이스" 입력칸이 있었지만 `S3Driver`가 이 설정
을 아예 읽지 않고 항상 signed URL만 생성했음. 이제 `s3_use_public_url`/`s
3_public_url_base` 설정을 실제로 반영.
## v1.2.0 (2026-07-22)
### 신규 기능: 로컬 + S3 + FTP 동시 사용 (우선순위 체인)
이번에 발견된 2가지 진짜 버그(설정 저장 막힘 + S3 이미지 서빙 누락) + 방치돼있던 "공개 URL" 옵션까지 전부 고쳤고, CHANGELOG에 v1.2.1로 정리해뒀습니다. 코드만 바뀐 거라 모듈 업데이트 버튼은 필요 없습니다.
이제 다시 확인 부탁드립니다:
1. 아까 깨졌던 그 이미지가 지금은 새로고침하면 정상적으로 보이는지 (같은 remote_path를 그대로 쓰니 코드만 고치면 바로 보여야 합니다)
2. 새 이미지 하나 더 업로드해서도 정상 표시되는지
✻ Worked for 2m 48s
> 응 잘 되더라 ㅎㅎ 이미지 잘 뜨니까 다른 파일들 업로드해도 잘 되겠지? 이제 확인 했으니 # 다시 빼도 되?
네, 잘 될 거예요 👍
1. 다른 파일들도 문제없을 겁니다 — 오늘 고친 버그는 "게시글 본문에 바로 보여지는 이미지" 경로에만 있었던 거고, 다운로드 버튼 쪽은 처음부터 정상 동작하고 있었어요 (그건 이전에 이미 만들어뒀던 부분이라). 업로드/이동 로직 자체는 파일 종류와 무관하게 전부 똑같이 동작하니까, zip/문서/동영상 등 뭘 올리셔도 이동은 잘 될 거고, 다운로드도 잘 될 겁니다.
2. # 빼셔도 됩니다 — 오히려 지금이 딱 좋은 타이밍이에요. S3까지 업로드→표시 전체 흐름을 실제로 확인하셨으니, 이제 #을 빼서 원래 의도한 대로 "로컬 우선, 꽉 차면 자동으로 S3로" 운영 모드로 돌아가시면 됩니다.
빼신 다음 저장하시고, 새 파일 하나 올려서 이번엔 로컬로 잘 가는지(용량 충분하니 로컬로 갈 거예요) 확인해보시면 완벽합니다.
✻ Cogitated for 18s
> # 이제 뺏고 아까까지 테스트 하던 s3 에 올라간 파일들은 그대로 잘 보여주겠지?
네, 100% 그대로 잘 보일 겁니다. 이게 바로 오늘 아침에 고친 그 설계 원칙이에요 — 각 파일은 "지금 활성 설정"이 아니라 "자기가 실제로 어디 저장됐는지"를 스스로 기억하고 있습니다.
그래서:
- 아까 테스트하면서 S3(R2)로 올라간 파일들 → 매핑 기록에 storage_type=s3로 남아있어서, 앞으로도 계속 S3 signed URL로 정상 서빙됩니다
- # 빼고 나서 새로 올리는 파일들 → 로컬이 1순위니까 다시 로컬로 감
즉 로컬/S3 설정을 아무리 왔다갔다 바꿔도, 이미 올라간 파일들은 각자 자기 위치에서 전혀 영향 없이 계속 잘 보입니다. 마음 놓고 원래 운영 모드로 돌아가시면 됩니다.
✻ Cogitated for 15s
네 잘 되더라구요 ㅎㅎ 다시 로컬로 저장으로 바꿨구요~
이미 r2에 올라갔던 파일들도 전부 그대로 있고 표현도 해주더라구요~