再度確認しましたが、解決策は逆ではないかと思います。uploads:migrate_to_s3 タスクは if !FileHelper.is_supported_media?(name) とすべきです。動画や音声に content-disposition: attachment; filename=X ヘッダーを設定するのは理にかなっていません。それらのファイルは Discourse の投稿内でストリーミング再生されるのであって、ダウンロードするものではないはずです。
したがって、以下のようにすべきです:
content-disposition attachment ヘッダーなし
- 画像
- 動画
- 音声
元のファイル名付きの content-disposition attachment ヘッダーあり
- その他のすべての添付ファイル/アップロード(PDF、TXT、CSV など)
何か見落としている場合は、追加の情報や例をご自由に追加してください。