我創建一個導軌和rails new plugin my_plugin --mountable
Rails的引擎沒有上傳與Carrierwave
插件這是相當一些工作要弄清楚,但它應該將文件上傳到S3與carrierwave,但它說好,但沒有什麼是上傳
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://,所以我不明白爲什麼該行是必要的。
之後,它說'好吧,它已經完成',當我試圖檢查(與deamon)的文件,沒有什麼。
我錯過了什麼?或者CarrierWave和Rails可掛載引擎有問題嗎?
謝謝,忘了改變它生成上傳後,但仍然deamon呼籲幫助,因爲沒有什麼在S3 – Michael
[2] pry(#)> @ s3.get('my.bucket.com', 'background.png') RightAws :: AwsError:NoSuchKey:指定的鍵不存在。 from /Users/dev/.rvm/gems/[email protected]_generator/gems/right_aws-3.0.4/lib/awsbase/right_awsbase.rb:562:in'request_info_impl' –
Michael
@Michael看看更新的答案。 fog.rb是否正確? – Nishant