如何像Openstack Swift一样在Python (Boto lib)中获取Amazon S3 Bucket的元数



我想获得一个amazon s3桶的元数据/头的列表?

我可以像下面这样在OpenStack Swift存储中获得元数据->请求元数据的curl命令:

curl -i http://localhost:8080/v1/AUTH_test/container1 -X HEAD -H "X-Auth-Token: AUTH_tk6194fghrt"

以上curl命令的响应:

HTTP/1.1 204 No Content
Content-Length: 0
X-Container-Object-Count: 6
Accept-Ranges: bytes
X-Trans-Id: tx0ff9f8541e2c4e019dea1-0053eb48a7
Date: Wed, 13 Aug 2014 11:14:47 GMT
X-Container-Meta-Century: Nineteenthsssssssssssss
X-Timestamp: 1399987571.97634
X-Container-Meta-Author: Mustafa
X-Container-Bytes-Used: 3978833
Content-Type: text/plain; charset=utf-8
X-Trans-Id: tx1c2734f1e4ca4f3e835da-0053eb497d

在openstack swift中,我可以通过使用python-swiftclient API获得swift容器(桶)的上述元数据。
我想对AmazonS3桶做同样的事情。那么,我如何获得AmazonS3 bucket元数据Python(我使用boto库)
这是可能的还是我在"白费力气"?

更新:
我试图得到一个桶的元数据不是桶的键。

您可以尝试下面的boto代码片段:

from boto.s3.connection import S3Connection
conn = S3Connection('<aws access key>', '<aws secret key>')
mybucket = conn.get_bucket('mybucket')
for key in mybucket:
    key = mybucket.get_key(key.name)
    print key.name
    print key.get_metadata('revision')

有关boto的更多信息,请访问:https://boto.readthedocs.org/en/latest/s3_tut.html

希望对你有帮助。

更新:

你还可以试试:

resp = conn.make_request("HEAD", mybucket)
print resp.getheaders()

希望您在响应头中看到一些您想要的元数据。

最新更新