Ripensandoci, credo che la soluzione sia esattamente il contrario: il task uploads:migrate_to_s3 dovrebbe essere condizionato da if !FileHelper.is_supported_media?(name). Non ha senso aggiungere l’intestazione content-disposition: attachment; filename=X per video e audio. Questi file vengono riprodotti in streaming all’interno di un post di Discourse, non scaricati, vero?
Quindi, ciò che dovremmo ottenere è:
Nessuna intestazione content-disposition attachment
- Immagini
- Video
- Audio
Intestazione content-disposition attachment con il nome file originale
- Tutti gli altri allegati/caricamenti (PDF, TXT, CSV, ecc.)
Se sto tralasciando qualcosa, sentiti libero di aggiungere ulteriori informazioni o esempi.