네, 제가 지원되지 않는 S3 프로바이더(OVH Object Storage)를 사용하고 있는 것 같습니다.
엔드포인트 URL은 https://s3.de.ovh.cloud.net이며, s3 cdn_url은 https://storage.de.ovh.cloud.net/v1/<some-unique-user-id>/<the-bucket-name>으로 설정되어 있습니다.
단축 URL이 해석될 때 discourse는 결과 URL을 구성하기 위해 엔드포인트 URL을 사용하지만, 이는 올바른 OVH 사용자 ID(s3 cdn_url에 포함된 부분)를 포함하지 않아 실패합니다.
반면, 단축 URL에 dl=1을 강제하면 작동하는 presigned_url이 구성되므로 저에게는 문제가 되지 않습니다.
컨테이너 yaml 내에서 이(s3 관련) 환경 변수들을 설정했습니다:
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: DE
DISCOURSE_S3_ENDPOINT: https://s3.de.cloud.ovh.net
DISCOURSE_S3_ACCESS_KEY_ID: ...
DISCOURSE_S3_SECRET_ACCESS_KEY: ...
DISCOURSE_S3_CDN_URL: https://storage.de.ovh.cloud.net/v1/<some-unique-user-id>/<the-bucket-name>
DISCOURSE_S3_UPLOAD_BUCKET: <the-bucket-name>
DISCOURSE_S3_INSTALL_CORS_RULE: false