2014-02-20 46 views
0

我現在使用本地主機,並安裝了費加羅寶石幫助我使用回形針與我的S3存儲桶進行測試。當我嘗試上載的東西,我得到這個消息:Ruby on Rails與費加羅和回形針

missing required :bucket option 

在development.rb我插入下面的代碼:

config.paperclip_defaults = { 
storage: :s3, 
s3_credentials: { 
    bucket: :ENV['AWS_BUCKET'], 
    access_key_id: :ENV['AWS_ACCESS_KEY_ID'], 
    secret_access_key: :ENV['AWS_SECRET_ACCESS_KEY'] 
    } 
} 

然後我把下面的代碼在費加羅生成的應用程序。 YML文件:

development: 
    AWS_BUCKET: (the actual name of my bucket) 
    AWS_ACCESS_KEY_ID: (the actual access key) 
    AWS_SECRET_ACCESS_KEY: (etc) 

我會說,當我宣佈桶就是直接進入我使用這個模型,它似乎工作(一個新的文件夾在我的分區中生成的),但我法師永遠不會出現在目的地(可能是一個單獨的問題,也可能不是)。

我知道我錯過了一些明顯的東西,我可能沒有做正確的事情。在aws-sdk v1.34和Figaro v0.7.0中使用Rails v4。感謝任何能夠幫助我的人。

回答

1

我認爲這只是一個語法錯字。 ENV是一個變量;這是一個散列,而不是一個符號。只需從ENV前刪除:即可。它應該是:

config.paperclip_defaults = { 
storage: :s3, 
    s3_credentials: { 
    bucket: ENV['AWS_BUCKET'], 
    access_key_id: ENV['AWS_ACCESS_KEY_ID'], 
    secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'] 
    } 
} 
+0

是的,就是這樣。嗯,該文件仍然沒有結束在桶中(瀏覽器中沒有錯誤信息)。該文件夾被創建但沒有文件。不知道那裏發生了什麼。明天看看這個,並將其作爲答案,如果我解決不了,可能會提出一個新問題。 – Rachel9494

1

而且您的意見,這是活的代碼是100%,我們的工作現在:

config.paperclip_defaults = { 
    storage: :s3, 
    s3_host_name: 's3-eu-west-1.amazonaws.com', 
    s3_credentials: { 
     access_key_id: ENV['AWS_ACCESS_KEY_ID'], 
     secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'] 
    }, 
    bucket: ENV['S3_BUCKET_NAME'] 
} 

還要確保您重新啓動每次更改這些時間你的Rails服務器細節。原因是配置文件在初始化時加載,併爲服務器的會話維護

+0

非常感謝。我把主機名放在了很好的位置,但我認爲我的缺失文件與我需要調整我的路徑有關,而我需要更新我的S3頁面而不是我正在做的事情。 – Rachel9494