错误上传文件到S3:缺少必需:桶选项
问题描述:
我试图上传数据到s3使用回形针。我不断收到以下错误错误上传文件到S3:缺少必需:桶选项
缺少必需的:斗选项
应用程序/控制器/ documents_controller.rb:64:在
block in update' app/controllers/documents_controller.rb:63:in
更新”
我已经更新我的配置/环境/发展.rb具有适当的s3凭证。在本地运行我的应用程序时出现此错误,尚未在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']
}
}
UPDATE: 参考this博客 感谢
答
你定义了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
答
我遇到了类似的问题之前lem和看到相同的错误信息。一定要检查rails控制台是否正确设置了ENV变量(“$ ENV ['AWS_BUCKET']”)。尽管正确导出env变量,我的一个返回零。重新启动终端后,它按预期工作。
我已经将aws凭证添加到了development.rb。我没有看到我的初始化文件夹中的env.rb。 – jsp 2013-03-24 19:24:10
您需要创建'env.rb',因为它还不存在。 'env.rb'文件设置ENV ['s3_bucket']','ENV ['s3_access_key_id']'和ENV ['s3_secret_access_key']'的值。您将用您的凭证替换“XXX”值。目前你的凭证是否看起来像这个':bucket => ENV ['my_bucket']'或这个':bucket =>'my_bucket'? – Sam 2013-03-24 20:49:27
没有帮助..或者 – jsp 2013-03-24 21:10:21