기능 요청: 객체별 ACL 없이 S3 백엔드에서 secure-uploads 사용

문제

개체별 ACL을 지원하지 않는 S3 호환 백엔드에서는 secure_uploads와 공개 제공되는 콘텐츠가 공존할 수 없습니다.

아바타 및 테마/사이트 에셋은 직접적이고 인증되지 않은 S3 URL을 통해 제공되는 것으로 보이며, 이를 위해서는 개체에 대한 공개 읽기 권한이 필요합니다. 그러나 동일한 버킷에는 제가 원하는 설정에서 비공개로 유지되어야 하는 보안 게시글 업로드 파일도 포함되어 있습니다. 두 유형(공개 및 비공개 파일)은 동일한 경로 접두사(original/..., optimized/...)를 공유합니다. 개체별 ACL이 없으면 공개 파일을 공개하고 다른 파일을 비공개로 설정하는 방법이 없습니다.

현재 제 상황: 아바타와 에셋은 깨져 있습니다(버킷이 비공개 상태 → 해당 파일에 대해 403 오류 발생), 반면 보안 게시글 업로드는 /secure-uploads/ 프록시를 통해 정상적으로 작동합니다.

핵심 충돌

보안 업로드는 인증된 읽기 경로를 필요로 하며, 아바타/에셋은 인증되지 않은 읽기 경로를 필요로 합니다. 둘 다 개체별 ACL 없이는 이를 구별할 수 없는 동일한 버킷 수준 경계 뒤에 위치해 있습니다.

요청하는 해결책

  1. 버킷이 비공개이고 ACL이 비활성화된 경우, 보안 업로드와 동일한 메커니즘을 사용하여 프리사인드 URL을 통해 아바타/에셋을 제공해 주세요. 제 관점에서는 비공개 Discourse 인스턴스 시나리오의 경우 로그인한 사용자만에게 적용하도록 하는 것도 가능할 것입니다.
  2. 공개 에셋과 보안 업로드를 위해 별도의 버킷이나 접두사를 지원하여, 액세스 경계가 공개/비공개 경계와 일치하도록 하고 적절한 ACL을 생성할 수 있도록 해 주세요.

두 접근 방식 중 어느 것이든 실현 가능한지, 아니면 제가 놓친 이미 지원되는 경로가 있는지 알려 주실 수 있을까요?

1개의 좋아요