Ruby on rails `获取';:找不到密钥:";S3“桶名”;(按键错误)
我正在使用Spree 3.1。要使用Heroku,我需要AWS S3 tp商店图片。Ruby on rails `获取';:找不到密钥:";S3“桶名”;(按键错误),ruby-on-rails,heroku,amazon-s3,paperclip,spree,Ruby On Rails,Heroku,Amazon S3,Paperclip,Spree,我正在使用Spree 3.1。要使用Heroku,我需要AWS S3 tp商店图片。 在本地和Heroku上花了这么多时间 我想在这里分享一下: 在AWS S3文档中,为ID和访问密钥ID和机密访问密钥创建IAM用户。为了让它工作,我需要创建配置文件并设置管理员权限 仅将其粘贴到需要的环境中,例如:config/environments/production.rb和development.rb config.paperclip_defaults = { storage: :s3,
在本地和Heroku上花了这么多时间 我想在这里分享一下:
config.paperclip_defaults = {
storage: :s3,
s3_credentials: {
bucket: ENV.fetch('S3_BUCKET_NAME'),
access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
s3_region: ENV.fetch('AWS_REGION'),
}
}
不要替换该值。相反
对于Heroku:
heroku config:set S3_BUCKET_NAME=your-bucket-name AWS_ACCESS_KEY_ID=your-access-key-id AWS_SECRET_ACCESS_KEY=your-secret-access-key AWS_REGION=your-region
$ cat .env
S3_BUCKET_NAME=your-bucket-name-development
AWS_ACCESS_KEY_ID=your-access-key-id
AWS_SECRET_ACCESS_KEY=your-secret-access-key
不要“引用”那些必须替换的值
config.paperclip_defaults = {
storage: :s3,
s3_credentials: {
bucket: ENV.fetch('S3_BUCKET_NAME'),
access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
s3_region: ENV.fetch('AWS_REGION'),
}
}
借
请将此部分合并到您的问题中。此.env文件位于何处?此.env文件位于项目的根目录中(Gemfile所在的位置)。我没有将此部分合并到问题中的原因是按照指南回答我自己的问题。
config.paperclip_defaults = {
storage: :s3,
s3_credentials: {
bucket: ENV['S3_BUCKET_NAME'],
access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'],
secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'],
s3_region: ENV.fetch'AWS_REGION'],
}
}