我现在正在使用localhost并安装了Figaro gem来帮助我使用Paperclip和我的S3存储桶进行测试。当我尝试上传某些内容时,我收到此消息:
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']
}
}
然后我将以下代码放在Figaro生成的application.yml文件中:
development:
AWS_BUCKET: (the actual name of my bucket)
AWS_ACCESS_KEY_ID: (the actual access key)
AWS_SECRET_ACCESS_KEY: (etc)
我会说,当我宣布存储桶直接进入我正在使用的模型时,它似乎确实有用(我的存储桶中生成了一个新文件夹),但图像实际上从未出现在目标中(也许是一个单独的问题或者可能不是。)
我知道我在这里遗漏了一些明显的东西,我可能没有做对。使用Rails v4和aws-sdk v1.34以及Figaro v0.7.0。感谢任何可以帮助我的人。
答案 0 :(得分: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']
}
}
答案 1 :(得分: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服务器。原因是配置文件在初始化时加载,并为服务器的会话维护