我正在使用 IBM Bluemix 对象存储。现在我想知道对象存储中有多少文件以及这些对象在容器中的总大小。
当我尝试获取容器的信息 (/v1/{account}/{container}) 时,我只获取最多 10000 个对象的对象。
是我必须用来获取对象总数和容器总大小的另一个 URL。
阿让
我正在使用 IBM Bluemix 对象存储。现在我想知道对象存储中有多少文件以及这些对象在容器中的总大小。
当我尝试获取容器的信息 (/v1/{account}/{container}) 时,我只获取最多 10000 个对象的对象。
是我必须用来获取对象总数和容器总大小的另一个 URL。
阿让
以下curl
命令将返回一个 JSON 对象数组,其中每个对象都包含以下容器的详细信息:
容器名称
curl -i https://dal.objectstorage.open.softlayer.com/v1/{account}?format=json -X GET -H "X-Auth-Token: xxxxx"
它返回以下信息(请参阅 JSON 对象数组的最后一行,但标题中的信息也可用):
HTTP/1.1 200 OK
Content-Length: 143
X-Account-Object-Count: 6
X-Account-Storage-Policy-Standard-Container-Count: 3
X-Timestamp: 1462461311.74826
X-Account-Meta-Temp-Url-Key: xxxxxx
X-Account-Storage-Policy-Standard-Object-Count: 6
X-Account-Bytes-Used: 8767182
X-Account-Container-Count: 3
Content-Type: application/json; charset=utf-8
Accept-Ranges: bytes
X-Account-Storage-Policy-Standard-Bytes-Used: 8767182
x-account-project-domain-id: xxxxxx
Date: Wed, 18 May 2016 01:31:01 GMT
[{"count": 1, "bytes": 7873373, "name": "logs"}, {"count": 3, "bytes": 378749, "name": "test"}, {"count": 2, "bytes": 515060, "name": "test2"}]
请注意,出于安全原因,我在上面屏蔽了一些敏感数据。
在调试模式下运行 cli时可以看到以下curl
命令:swift
$ swift --debug list -lt
如果您需要有关如何swift
为您的对象存储设置 cli 的更多信息,请参阅以下链接中的文档:
使用 Python,您可以执行以下操作:
conn = swiftclient.Connection(
key=password,
authurl=auth_url,
auth_version='3',
os_options={"project_id": project_id,
"user_id": user_id,
"region_name": region_name})
#List objects in a container, and prints out each object name, the file size, and last modified date
for container in conn.get_account()[1]:
for data in conn.get_container(container['name'])[1]:
print 'object: {0}\t size: {1}\t date: {2}'.format(data['name'], data['bytes'], data['last_modified'])
考虑使用 Swift CLI。
# swift stat 显示账户详情
Account: AUTH_ad1e25aee7464b35ad82dd5c19725a4a
Containers: 4710
Objects: 53
Bytes: 52446270
...
# swift stat my_container 显示容器详细信息
Account: AUTH_ad1e25aee7464b35ad82dd5c19725a4a
Container: my_container
Objects: 1
Bytes: 1437696
...