IBM云对象存储:使用CLI获取存储桶大小



我正试图找到一种方法来自动化在IBM Cloud上获取COS存储桶大小的任务。

我在不同的帐户上有几十个bucket,但仍然找不到使用IBM Cloud COS CLI获取这些信息的方法,只有其他信息,如bucket名称等。

COS S3 API不返回存储桶的大小信息。因此,基于API的CLI也不会返回大小信息。

但这里有一种间接的方法,可以通过循环遍历bucket 中单个对象的大小来找到bucket的大小

ibmcloud cos objects --bucket <BUCKET_NAME> --output JSON | jq 'reduce (.Contents[] | to_entries[]) as {$key,$value} ({}; .[$key] += $value) | .Size'

输出单位为字节

您可能需要循环遍历bucket。名称可能在shell脚本中。对于帐户+资源组中的所有存储桶,运行以下命令

ibmcloud cos buckets --output JSON

注意:在运行上述命令之前,请记住使用以下命令将COS服务CRN添加到配置中

ibmcloud cos config crn --crn <SERVICE_CRN>

在单个对象中循环的答案确实是使用IBM Cloud CLI查找该信息的唯一(可能也是最好的(方法,但还有一些其他方法值得一提。

如果您需要在命令行上优雅地执行此操作,Minio Client提供了Linux风格的语法:

mc du cos/$BUCKET

这将返回MiB中bucket的大小。

此外,COS资源配置API将直接返回bytes_used值,而不会在后台对对象进行迭代。虽然还没有正式的CLI实现(尽管它正在酝酿中(,但使用cURL或httpie查询bucket相对容易。

curl "https://config.cloud-object-storage.cloud.ibm.com/v1/b/$BUCKET" 
-H 'Authorization: bearer $TOKEN'

相关内容

  • 没有找到相关文章

最新更新