Rails 5.2から入ったファイルアップロード機能のActive Storageを使ってS3にダイレクトアップロードを実装します。 クライアントからS3にファイルを直接アップロードすることにより、ファイルアップロード時の負荷を削減できるメリットがあり、最近ファイルをAWSにアップロードするとなるとダイレクトアップロードで実装することが多いと思います。 ファイルをアップロードするにあたり、S3の設定やユーザ認証、ファイルのバリデーションなど実運用で必要と思われる箇所についても合わせて実装していきます。 Active Storageに興味がある方は、わかりやすくまとまっているActive Storageの概要 | Rails ガイドをぜひ読んでみてください。 ソースコードはこちらです。rails_samples/sample_active_storage at master · nipe03