2015-09-05 239 views
0

我正在尝试使用aws-sdk将图像上传到s3。我能够取回我的桶AWS 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桶对象吗?

回答

3

Aws::S3::Types::BucketAws::S3::Bucket不一样。只有后者有#presigned_post。看起来Aws::S3::Client#list_buckets返回关于存储桶的信息,而不是存储桶对象(您必须自己创建)。

你试过:

bucket = Aws::S3::Bucket.new('mybucket', client: s3) 
相关问题