Oui, il semble que j’utilise un fournisseur S3 non pris en charge (OVH Object Storage)
Avec une URL de point de terminaison de https://s3.de.ovh.cloud.net et une s3 cdn_url configurée sur https://storage.de.ovh.cloud.net/v1/<some-unique-user-id>/<the-bucket-name>
Lorsque les URL courtes sont résolues, Discourse utilise l’URL du point de terminaison pour construire l’URL résultante (ce qui échoue car elle n’inclut pas le bon ID utilisateur OVH - la partie de la s3 cdn_url).
Forcer les URL courtes à avoir dl=1 construirait cependant une presigned_url fonctionnelle, ce qui me conviendrait.
J’ai défini ces variables d’environnement (spécifiques à S3) dans le YAML du conteneur :
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