我正在尝试通过aws-sdk
gem实现直接上传到S3。出于某种原因,尝试使用presigned_post
方法创建上传的网址时出现错误undefined method 'presigned_post' for nil:NilClass
。这是我到目前为止的设置:
aws.rb
Aws.config.update({
region: 'us-east-2',
credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']),
})
S3_BUCKET = Aws::S3::Resource.new.bucket(ENV['S3_BUCKET_NAME'])
uploads_controller.rb
def set_s3_direct_post
@s3_direct_post = S3_BUCKET.presigned_post(key: "uploads/#{SecureRandom.uuid}/${filename}", success_action_status: '201', acl: 'public-read')
end
我相信它可能与调用S3_BUCKET
的方式有关,但我尝试了几种不同的方式,每次都会返回相同的错误。
答案 0 :(得分:0)
Alex,我遇到了同样的问题,结果发现我的初始化程序的顺序已关闭,我的bucket.presigned_post试图在空对象(存储桶)上执行。拿一个look at this,看看它是否对您没有帮助。