我正在尝试在我的ruby on rails项目中创建一个Users控制器,我还使用heroku和一个aws-s3桶配置 . 我使用S3_BUCKET,AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY设置我的.env和我的heroku本地 . 我还将我的initializer / aws.rb文件设置为如下所示:
Aws.config.update({
region: 'us-east-1',
credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']),
})
S3_BUCKET = Aws::S3::Resource.new.bucket(ENV['S3_BUCKET'])
我有捆绑安装了这样的aws gem:
gem 'aws-sdk', '~> 3'
但是当我运行命令时
rails g controller Users new
我的终端出现以下错误:
aws-sdk-s3/bucket.rb:658:in `extract_name': missing required option :name (ArgumentError)
我查看了该文件,它正在尝试查找S3存储桶名称,但我已将其设置为.env和heroku本地 . 还有其他需要设置的地方吗?我读过的所有指南都没有提到这个错误 .
2 回答
这对你有帮助,我在我的项目中使用过这样的东西 . 1.在/ config / initializers文件夹中创建文件aws.rb . 2.然后复制以下代码,
多数民众赞成,这是有效的 . 快乐编码:)
嗨,请检查您是否指定了正确的凭据和存储桶名称 . 此外,请确保您提供了正确的区域 . 请尝试以下代码
如果你想上传文件或其他东西
obj.upload_file(file, acl:'public-read')