我正在尝试使用回形针将数据上传到s3。我一直收到以下错误
缺少必需:桶选项
app / controllers / documents_controller.rb:64:
block in update' app/controllers/documents_controller.rb:63:in
更新'
我已使用适当的s3凭据更新了我的config / environments / development.rb。我在本地运行我的应用程序时遇到此错误,尚未在Heroku上尝试过。 有什么建议我还缺少什么吗?
document.rb
class Document < ActiveRecord::Base
attr_accessible :documentId, :name, :docstack
has_attached_file :docstack, styles: {
thumb: '200x200',
medium: '33x300>'
}
end
development.rb
config.paperclip_defaults = {
:storage => :s3,
:s3_credentials => {
:bucket => ENV['bucket'],
:access_key_id => ENV['123'],
:secret_access_key => ENV['key']
}
}
更新 参考this博客 感谢
答案 0 :(得分:0)
您是否定义了ENV
变量值?
尝试添加此文件,
# /config/initializers/env.rb
ENV['s3_bucket'] = 'XXX'
ENV['s3_access_key_id'] = 'XXX'
ENV['s3_secret_access_key'] = 'XXX'
此代码发送到development.rb
文件,
# /config/environments/development.rb
config.paperclip_defaults = {
:storage => :s3,
:s3_credentials => {
:bucket => ENV['s3_bucket'],
:access_key_id => ENV['s3_access_key_id'],
:secret_access_key => ENV['s3_secret_access_key']
}
}
然后将env.rb
添加到您的.gitignore
文件中,这样您的凭据就不会存储在GIT中,
# /.gitignore
/config/initializers/env.rb
答案 1 :(得分:0)
之前我遇到过类似的问题并看到了相同的错误消息。务必检查rails控制台是否正确设置了ENV变量(“$ ENV ['AWS_BUCKET']”)。尽管正确导出了env变量,但我的一个变量为零。重新启动终端后,它按预期工作..