我正在尝试使用aws-sdk
将图片上传到s3。我能够找回我的桶
s3 = Aws::S3::Client.new
resp = s3.list_buckets
bucket = resp.buckets.select {|x| x.name == "mybucket"}[0]
>> bucket
>> #<struct Aws::S3::Types::Bucket name="mybucket", creation_date=2015-09-05 19:23:49 UTC>
我现在有了我的水桶。查看aws文档和heroku's文档,我应该可以致电bucket.presigned_post
,但我得到NoMethodError: undefined method 'presigned_post' for #<Aws::S3::Types::Bucket:0x007ff583bece10>
我在这里缺少什么?我没有正确的s3桶对象吗?
答案 0 :(得分:3)
Aws::S3::Types::Bucket
与Aws::S3::Bucket
不同。只有后者有#presigned_post
。似乎Aws::S3::Client#list_buckets
返回有关存储桶的信息,而不是存储桶对象(您必须自己创建)。
你试过了吗?
bucket = Aws::S3::Bucket.new('mybucket', client: s3)