2011-02-28 72 views
3

我正在開發一個Rails 3應用程序,有用戶上傳那裏的個人資料圖片。我遵循一些在線配置,我認爲我真的很接近它的工作原理,但由於某種原因,我似乎無法將文件轉到Amazon存儲區。文件沒有被保存到S3與回形針亞馬遜配置

這裏是我的設置

用戶模型有這個

has_attached_file :photo, 
        :styles => {:small => "83x83>"}, 
        :storage => :s3, 
        :s3_credentials => "#{RAILS_ROOT}/config/s3.yml", 
        :path => "/:style/:filename", 
        :bucket => 'mybucket' 

我YML文件看起來像這樣

development: 
    bucket: "dev" 
    access_key_id: "kjlkjlkjlkjlkjlkjlkj" 
    secret_access_key: "kjlkjlkjlkjlkjlkjlkj/kjlkjlkjlkjlkjlkjlkj" 

test: 
    bucket: "test" 
    access_key_id: "kjlkjlkjlkjlkjlkjlkj" 
    secret_access_key: "kjlkjlkjlkjlkjlkjlkj/kjlkjlkjlkjlkjlkjlkj" 

production: 
    bucket: "prod" 
    access_key_id: "kjlkjlkjlkjlkjlkjlkj" 
    secret_access_key: "kjlkjlkjlkjlkjlkjlkj/kjlkjlkjlkjlkjlkjlkj" 

我在我的控制器行動這是否

def upload_image 
    current_user.update_attributes(params[:user]) 
    redirect_to "/profile/#{current_user.id}" 
    end 

我正在檢查在rails控制檯中添加了user.photo對象,並且在錯誤參數中看不到任何內容。在這一點上,我非常難過。我用我的FTP程序(傳輸)連接到S3帳戶使用相同的信用,它工作得很好,所以我很確定我的配置是正確的。

回答

0

更改配置以這樣的: -

has_attached_file :photo, :styles => {:small => "83x83>"}, :storage => :s3, :s3_credentials => YAML.load_file("#{RAILS_ROOT}/config/s3.yml"), :path => "/:style/:filename", :bucket => 'mybucket'

0

在你User模型,你叫

:bucket => 'mybucket' 

但在你yml文件,沒有桶被稱爲mybucket。嘗試確保名稱匹配。