Posted at

【rails5.2】active storageにてs3へダイレクトアップロードする際にバケット直下ではなくフォルダを指定したい

More than 1 year has passed since last update.


やりたいこと

active storage のデフォルト機能でs3へダイレクトアップロードする際にバケット直下ではなくフォルダを指定したい

https://railsguides.jp/active_storage_overview.html#has-many-attached

公式ドキュメントを参考に S3へダイレクトアップロードをする。

非常に便利!


storage.yml


amazon:
service: S3
access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
region: us-east-1
bucket: バケット名

ただし指定したバケット直下にimageが展開されてしまうので、

バケット/images/画像ファイルたち

のようにフォルダを指定したいなと思って調べていたら

意外と方法がでてこない。簡単そうなのに。


結論

現状サポートされていないそうな。

よほどその構成にこだわるなら別の方法を探すことになるだろうが、

そうでなければ、image専用のバケットとして扱えばよいかなと。

https://stackoverflow.com/questions/50893435/rails-active-storage-set-folder-to-store-files