我正在使用boto与S3存储桶进行交互,在某些情况下,我只是希望能够在不传递凭据的情况下列出可公开读取的存储桶。如果我传递凭据,boto实际上不允许我列出存储桶,即使它是公开可见的。是否可以连接到S3并列出存储桶而不用传递凭据?
答案 0 :(得分:2)
文档没有提到它,但在深入研究代码后,我发现了一个可以解决我问题的隐藏的kwarg:
conn = boto.connect_s3(anon=True)
然后,您可以在任何公开可读的存储桶上调用conn.get_bucket()
。
答案 1 :(得分:0)
我发现,如果你只是阅读桶头,那么这种方法没有可信度:
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket(options.bucket)
s3.meta.client.head_bucket(Bucket=bucket.name)
我use it当我需要ping我的存储桶以便于阅读时。