Railsプラグインを作成していますrails new plugin my_plugin --mountable
これを理解するにはかなりの作業が必要でしたが、carrierwave を使用してファイルを S3 にアップロードすることになっていますが、OK と表示されますが、何もアップロードされません。
Carrierwave を使用してrails g uploader photo
、次のようなファイルでアップローダを生成します
# my_engine/app/uploaders/my_engine/photo_uploader.rb
# encoding: utf-8
module my_engine
class PhotoUploader < CarrierWave::Uploader::Base
# Choose what kind of storage to use for this uploader:
storage :file
# storage :fog
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
end
モデルにはマウントがありました:写真、PhotoUploader
module PdfGeneratorEngine
class Assemble < ActiveRecord::Base
attr_accessible :color, :photo, :qr_code_url, :text
mount_uploader :photo, PhotoUploader
end
end
私のCarrierWave設定ファイルはこれです
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => 'MY_ACCES_KEY',
:aws_secret_access_key => 'MY_SECRET_KEY',
:provider => 'AWS',
:region => 'eu-west-1'
}
config.fog_directory = 'my.bucket.com'
config.fog_host = 'https://s3-eu-west-1.amazonaws.com/my.bucket.com'
config.storage = :fog
config.s3_use_ssl = true
config.fog_public = true
end
なのでまずはfog_hostで叫び始めますが、asset_hostなら大丈夫です
次に、s3_use_ssl に問題がありますが、CarrierWave の github にマージされた問題です。しかし、ホストはすでに https:// として定義されているため、その行が必要な理由がわかりません。
その後、「完了しました」と表示され、(デーモンで) ファイルを確認しようとすると、何もありません。
私は何を取りこぼしたか?または、CarrierWave と Rails のマウント可能なエンジンに何か問題がありますか?