일정 기간 동안 서브도메인 스타일과 경로 스타일 버킷 모두에서 정상적으로 작동했습니다. 그러나 DNS 구성 부분이 가장 고통스러운 부분입니다. 작동하려면 특수한 와일드카드 DNS 규칙이 필요하거나, 실제 버킷을 모두 인식하는 맞춤형 DNS 서버가 필요합니다. 저는 bind9에서 와일드카드 존을 사용하여 이를 구현했지만, Cloudflare나 다른 서비스에서 서브도메인 스타일을 적용하면 크게 문제가 발생합니다.
위 내용이 해당 섹션에 적합하다고 생각하신다면 기꺼이 추가하겠습니다. 다만 ‘주의 사항’ 섹션이 포함될 것이며, 문구 등을 먼저 검토해 주시면 감사하겠습니다. (참고로 제 배포 환경에 CDN이 없어서 CDN URL을 포함하지 않았습니다. (비용 문제로 실험할 여력이 없기 때문입니다))
또한 제가 직접 수정도 했습니다. Provider는 Self-hosted로 설정되어 있지만, MinIO 섹션은 여전히 연결되어 있습니다. 현재 제가 찾을 수 있는 클라우드 제공 솔루션이 없기 때문에 이 방식으로 해결해야 할 것 같습니다. (위키 게시글에 통합되었으므로 원하시면 이제 이 스레드를 닫으셔도 됩니다.)
또한 (MinIO의 오픈소스 코드와 훌륭한 문서에 감사드립니다!) MinIO의 모든 HTTP 동작 동사에 대해 CORS가 기본적으로 활성화되어 있다는 것을 발견했습니다. 따라서 CORS 규칙을 설치할 필요가 없으며, 이미 존재하고 있습니다. 또한 자체 호스팅 MinIO 섹션도 업데이트했으며, 문법도 일부 수정했습니다.
이 문제를 추적하는 데 도움을 주신 @Falco님께 감사드립니다. 이 문제를 앱 빌드/재빌드 중에 발견했었거든요. 또한 StackPath를 사용한 CDN 설정에 대한 기본 가이드도 감사드립니다. 완전히 기능적인 테스트를 원했고, 다른 용도로 이미 StackPath CDN을 사용 중이었기 때문에 CDN 스택을 통해 모든 것이 정상적으로 작동하는지 확인할 수 있었거든요!
Discourse는 S3에 대해 경로 모드(path mode)가 아닌 DNS 모드를 사용합니다. 이미 오래전부터 그랬기 때문에, 사용법 문서나 S3 스토리지 사용법 페이지 어디에도 경로 모드에 대해 언급하지 않습니다. 또한, 관련 없는 내용을 위해 오래된 스레드를 다시 활성화(네크로맨싱)하는 대신 새 스레드를 만드는 방법을 배우시는 것이 좋습니다.
참고로, 그렇게 할 수 없습니다. 패스 모드가 더 이상 지원되지 않는다고 보며, 그래서 디스코urs에서 패스 모드를 강제하는 옵션이 사라졌습니다. 또한 S3 호환 객체 스토리지 사용법 페이지에 제가 원래 추가했던 섹션이 이제 주의사항 및 요구사항 아래에서 이렇게 표시되는 이유이기도 합니다:
MinIO 구성에서 도메인 지원(Domain Support)을 활성화하여 도메인 기반 버킷 URL을 사용해야 합니다. 이것은 필수이며 선택 사항이 아니며, 디스코urs에는 버킷 경로를 위한 패스 기반 지원이 없습니다.
오래전에 제가 처음 디스코urs를 다룰 때만 해도 그 옵션이 있었지만, 나중에 제거되었고 저는 MinIO를 백엔드로 사용하는 것을 중단해야 했습니다. 하지만 이제 MinIO에 DNS 모드를 작동시키는 방법에 대한 문서가 있으므로(즉, S3처럼 bucket[.]server[.]com 형태의 경로를 사용하게 되는 경우), MinIO를 올바르게 구성하면 작동합니다. (위키 자체를 편집할 수 있도록 내 신뢰 수준(trust level)을 올려준 스태프/모더레이터/시스템에 감사드립니다).