我安装了paperclip插件,并且能够在本地使用它。当我配置它与亚马逊S3一起使用时,我不断收到NoSuchBucket(指定的存储桶不存在)错误。 Paperclip文档指出如果存储桶不存在但是很清楚,则会创建存储桶 我的情况出了问题。
我首先打破了aws-s3 gem(v0.6.2) 然后还安装了right_aws gem(v1.9.0)
都有相应的
config.gem "aws-s3", :lib => "aws/s3"
config.gem 'right_aws', :version => '1.9.0'
environment.rb文件中的行
带回形针的image.rb文件的代码如下:
class Image < ActiveRecord::Base
belongs_to :work
has_attached_file :photo, :styles => {:big => "612x1224>", :small => "180X360>", :thumb => "36x36#"},
:storage => 's3',
:s3_credentials => YAML.load_file("#{RAILS_ROOT}/config/s3.yml")[RAILS_ENV],
:path => ":attachment/:id/:style/:basename.:extension",
:bucket => 'my-unique-image-bucket'
attr_protected :photo_file_name, :photo_content_type, :photo_size
validates_attachment_presence :photo
validates_attachment_size :photo, :less_than => 3.megabytes
validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png', 'image/gif']
end
答案 0 :(得分:3)
我不完全确定这是它,但是你加载的s3_credentials与我在生产网站上使用的不同。
我的配置行是:
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml"
而不是
:s3_credentials => YAML.load_file("#{RAILS_ROOT}/config/s3.yml")[RAILS_ENV]
答案 1 :(得分:1)
它应该创建但是桶,但这在某一点上是一个错误:
http://groups.google.com/group/paperclip-plugin/browse_thread/thread/42f148cee71a0477
我最近遇到了这个问题,结果证明服务器时间非常大,s3不允许任何更新“未来那么多”或类似但导轨错误是NoSuchBucket ......令人困惑
...
答案 2 :(得分:0)
我已经为firefox安装了s3fox插件,并使用该插件创建了存储桶。现在Paperclip可以正常使用S3,因为已经创建了已识别的存储桶。
但我仍然对回形针无法用上面的代码创建新桶感到好奇。
答案 3 :(得分:0)
如果有人通过谷歌结束了这里:当我错误地改变了传递给AWS::S3::S3Object.store
的第2和第3个参数的顺序时,我看到了同样的错误。
答案 4 :(得分:0)
不是你的情况,但是AWS不允许在存储桶名称中使用大写字母而回形针不会检查,create_bucket
失败。