我已经通过 railscast 并在 Stack Overflow 上进行了研究。尽管我发现其他人有同样的问题,但我研究过的任何其他解决方案似乎都不起作用。我已经尝试了其他帖子中建议的代码的多种变体......没有运气。
我正在尝试通过Carrierwave和Fog gem 将 PDF 文件上传和存储到Amazon S3,但无济于事。当我在生产中使用Heroku时,我还没有尝试将它部署到 Heroku,因为我什至无法让它在本地工作。返回的错误是
缺少必需的参数:aws_access_key_id、aws_secret_access_key
我该如何解决这个问题?
carrierwave.rb(初始化程序)
CarrierWave.configure do |config|
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV['MY_KEY_ID'],
aws_secret_access_key: ENV['MY_KEY']
}
config.fog_directory = ENV['MY_BUCKET']
config.fog_public = false
end
pdf_uploader.rb:
class PdfUploader < CarrierWave::Uploader::Base
storage :fog
include CarrierWave::MimeTypes
process :set_content_type
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end