Ok, quindi ho trovato il punto in cui viene generato il Markdown per gli allegati e, per quanto ne capisco l’API dei plugin, non si può (facilmente) sovrascriverla (penso persino che non si dovrebbe farlo).
Quindi il mio pensiero iniziale di aggiungere un parametro ?dl=1 a quegli URL sembra essere il modo sbagliato per farlo.
Per quanto riguarda il non forzare i download per gli URL brevi risolti: se ho capito bene l’argomento contro gli ACL pubblici sui bucket S3, si dovrebbe o:
- servire i file da S3 tramite una CDN (non fattibile per gli allegati come ha sottolineato @martin, poiché in questo caso potremmo non essere in grado di impostare correttamente il nome del file per il download)
- creare un URL presignato per l’oggetto S3
Ma il comportamento attuale non fa né l’uno né l’altro e si aspetta che il bucket S3 abbia un ACL pubblico. Questo sembra essere anche il caso per i provider S3 supportati (incluso Amazon), quindi vorrei chiedere perché non rendere l’opzione force_download in Discourse.store.url_for predefinita su true (discourse/app/controllers/uploads_controller.rb at v2.8.0.beta11 · discourse/discourse · GitHub) quando si risolvono gli URL brevi per gli store S3?