如何在Python中获取Amazon S3桶的元数据/头部(使用Boto库),类似于Openstack Swift?
我想获取一个亚马逊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容器(存储桶)的元数据。
我想对亚马逊S3存储桶做同样的事情。那么,我该如何用Python获取Amazon S3存储桶的元数据呢?(我正在使用boto库)
这可能吗,还是我在“白费力气”?
更新:
我想获取的是存储桶的元数据,而不是存储桶中的键。
1 个回答
2
你可以试试这个 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()
希望你能在响应头中看到你想要的一些元数据。