未初始化的常量AWS :: S3 :: NoSuchBucket

时间:2010-12-20 12:19:04

标签: amazon-s3 ruby-on-rails-3 paperclip

我使用Rails 3并使用以下代码...

config.gem "aws-s3", :version => ">= 0.6.2", :lib => "aws/s3"
config.gem 'right_aws', :version => '2.0.0'

model.rb

has_attached_file :video, 
                      :storage => :s3,
                      :s3_credentials => "#{::Rails.root.to_s}/config/s3.yml",
                      :path => ":attachment/:id/:style/:basename.:extension"

                    # Paperclip Validations
                    validates_attachment_presence :video
                    validates_attachment_content_type :video, :content_type => ['application/x-shockwave-flash', 'application/x-shockwave-flash', 'application/flv', 'video/x-flv']

s3.yml

development:
  bucket_name: tekbookvideo
  access_key_id: xxxx
  secret_access_key: yyyy
production:
  bucket_name: tekbookvideo
  access_key_id: xxxx
  secret_access_key: yyyy

我得到了未初始化的常量AWS :: S3 :: NoSuchBucket错误......

我不知道该怎么做......

5 个答案:

答案 0 :(得分:3)

我遇到了这个问题并且遇到了很大的麻烦。我最终的解决方案是登录亚马逊并创建一个新的存储桶。然后我将模型中桶的名称设置为参数,如此...

has_attached_file :video,
  :storage => :s3,
  :bucket => 'bucketname',
  ...

答案 1 :(得分:1)

它似乎是当前版本的Paperclip中的一个错误。参见:

https://github.com/thoughtbot/paperclip/issues/issue/363

答案 2 :(得分:1)

我听说人们有这个问题因为使用了不受aws3支持的欧洲桶

答案 3 :(得分:1)

在类似的帖子上发布此内容,但这里又是:

我只是遇到了同样的问题。然后我读了一些关于Paperclip创建存储桶的东西,它们不存在。我在已经创建的存储桶名称的末尾附加了1,突然之间它起了作用。我认为这可能与另一端有关。尝试将存储桶名称设置为您可能已创建的存储桶名称以外的其他名称...高度反直接...

答案 4 :(得分:1)

我首先创造了一个无用的欧洲水桶。在标准的美国位置再次重新创建桶对我来说是个窍门。 (Thx Boris)。