2009-08-28 91 views
3

我安裝了回形針插件,並且能夠在本地使用它。當我配置它與amazon S3一起工作時,我不斷收到NoSuchBucket(指定的存儲桶不存在)錯誤。回形針文檔指出鬥將,如果它不存在,而是被創建在我的情況清楚地 事情錯了。Ruby on Rails /回形針/ AWS :: S3 :: NoSuchBucket錯誤

我第一insalled都具有相應的在environment.rb文件中

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

線AWS-S3寶石(v0.6.2) 然後還安裝right_aws寶石(v1.9.0)

帶回形針的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 

回答

3

我不能完全肯定這是它,但你的s3_credentials的負載比我用我的生產地點的不同。

我的配置行:

:s3_credentials => "#{RAILS_ROOT}/config/s3.yml" 

而不是

:s3_credentials => YAML.load_file("#{RAILS_ROOT}/config/s3.yml")[RAILS_ENV] 
+0

實際的插件加載YAML文件,你不應該。 – Garrett 2009-08-28 18:50:15

+0

試過你加載YAML文件的方式,但它仍然不工作。憑據文件可能沒有錯,因爲它加載正常,並且在無法加載或任何密鑰錯誤時會給出不同的錯誤。 – fahrio 2009-08-29 08:58:20

+0

您是否手動創建了存儲桶? (使用S3Fox,傳輸或S3Hub),然後嘗試上傳? – 2009-08-30 13:36:52

0

我已經安裝了Firefox瀏覽器插件s3fox,創造與插件桶。現在回形針可以正常工作,因爲已經創建了桶。

但我仍然很好奇paperclip無法使用上面的代碼創建新桶。

+0

我不知道,使用S3的某些方面對我來說看起來仍然非常脆弱,通常很難確定哪個系統存在問題。例如,「目錄」結構(其中帶有斜槓的鍵)通常在客戶端應用程序之間似乎無法正常工作,而且我甚至對S3有一些不可思議的權限問題。這就是說,它仍然是一個很好的服務,我依賴它,但是有必要徹底測試你的工具鏈。 – 2009-08-31 13:22:21

0

如果有人通過谷歌這裏纏:我看到了同樣的錯誤時,我錯誤地切換或我正在傳遞給第二個和第三個參數AWS::S3::S3Object.store

0

這不是你的情況,但AWS不允許在存儲桶名稱中使用大寫字母,並且回形針不檢查,在create_bucket中失敗。

相關問題