shrineを使ってs3にファイルをアップロードすることができましたが、それぞれの写真を所有するアルバムに従って別のフォルダにアップロードしようとしています。shrineの宝石を使ってs3の別のフォルダに画像をアップロードする
私は名前のバケット考えてみましょう:アルバムに
アップロード画像:abc
をアルバムに画像をアップロードabc/family/...
:family
はに画像をアップロードする必要がありabc/friends/...
friends
はに画像をアップロードする必要があります
イニシャライザファイルでShrine.storages
に実行する方法が見つかりませんでした。
私はそれを行う方法は、何とかdefault_storage
とdynamic_storage
プラグインを使用していると思いますが、私はまだそれをやり遂げませんでした。
提案/解決策
どうもありがとう:)
関係: Album has_many :photos Photo belongs_to :album
Photo
クラス神社ためimage_data
フィールドがあります。
初期化子での私のコード:(基本的なもの)
s3_options = {
access_key_id: ENV["S3_KEY"],
secret_access_key: ENV["S3_SECRET"],
region: ENV["S3_REGION"],
bucket: ENV["S3_BUCKET"],
}
Shrine.storages = {
cache: Shrine::Storage::S3.new(prefix: "cache", **s3_options),
store: Shrine::Storage::S3.new(prefix: "store", **s3_options),
}
EDIT:
私は名前のプラグインがあり判明:pretty_location
立派フォルダ構造が追加されますが、そのない、まさに私バケツの下に/Photo/:photo_id/image/:image_name
を追加しますが、代わりにアルバム名が必要です。