使用aws-sdk-s3
gem,我目前能够将项目上传到存储桶并创建签名的URL,并试图确定存储桶中是否存在对象。我看到的所有文档都说client.bucket('bucketname')应该可以工作,但在我看来,它不是。我尝试过:
client.bucket('bucketname')
client.bucket['bucketname']
client.buckets('bucketname')
client.buckets['bucketname']
,但无济于事。使用head_object
的建议是有可能的(https://github.com/cloudyr/aws.s3/issues/160),但是我仍然很好奇为什么bucket
无法正常工作。
DOCS:
https://gist.github.com/hartfordfive/19097441d3803d9aa75ffe5ecf0696da
https://docs.aws.amazon.com/sdk-for-ruby/v3/api/index.html#Resource_Interfaces
答案 0 :(得分:0)
您应该在Aws::S3::Resource
实例上调用bucket
或buckets
,而不是在Aws::S3::Client
实例上调用,因为错误状态。
您提供的链接以及docs显示:
s3 = Aws::S3::Resource.new(
region: 'us-east-1',
credentials: Aws::InstanceProfileCredentials.new()
)
bucket = s3.bucket('my-daily-backups')