`fetch':找不到密钥:"S3_BUCKET_NAME" (KeyError)
`fetch': key not found: "S3_BUCKET_NAME" (KeyError)
我正在使用 Spree 3.1。要使用 Heroku,我需要 AWS S3 tp 存储图片。
花了很多时间在本地和 Heroku 的 KeyError 上。
并喜欢在这里分享:
在 AWS S3 文档中为 ID 和 access_key_id 和 secret_access_key 创建 IAM USER。为了让它工作,我需要创建配置文件并设置管理员权限。
仅在需要的环境中粘贴此内容,例如:config/environments/production.rb 和 development.rb
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
对于本地:
我们在 .env
中添加值
$ 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
不要"quote"那些价值观
你必须更换
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'),
}
}
来自
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'],
}
}
我正在使用 Spree 3.1。要使用 Heroku,我需要 AWS S3 tp 存储图片。 花了很多时间在本地和 Heroku 的 KeyError 上。
并喜欢在这里分享:
在 AWS S3 文档中为 ID 和 access_key_id 和 secret_access_key 创建 IAM USER。为了让它工作,我需要创建配置文件并设置管理员权限。
仅在需要的环境中粘贴此内容,例如:config/environments/production.rb 和 development.rb
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
对于本地: 我们在 .env
中添加值 $ 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
不要"quote"那些价值观
你必须更换
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'),
}
}
来自
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'],
}
}