こんにちは、refile gem を使用して S3 に直接画像をアップロードしようとしています。
project.rb は次のようになります
class Project < ActiveRecord::Base
has_many :photos, :class_name => "Project::Photo", dependent: :destroy
accepts_attachments_for :photos
end
プロジェクト/写真.rb
class Project::Photo < ActiveRecord::Base
belongs_to :project
attachment :file
attr_accessible :name, :address, :created_at, :project_id, :file
before_create :debugging_create
end
config/initializers/refile.rb
require "refile/s3"
aws = {
access_key_id: "xyz",
secret_access_key: "abc",
region: "sa-east-1",
bucket: "my-bucket",
}
Refile.cache = Refile::S3.new(prefix: "cache", **aws)
Refile.store = Refile::S3.new(prefix: "store", **aws)
Refile.backends からの出力 [画像 1]
photos_files の場合、ファイル アップロードの Params は次のようになります [画像 2]
問題:
- Amazon S3 に保存されているデータベースのキーを取得して保存できません。Refile.backends には異なるキーが表示されます。
- 更新時に新しいファイルを保存する方法。現在、既存のファイルを上書きします。