0

我创建了一个存储桶,用于为我的所有用户存储数据。目录结构如下:

--> BUCKET_NAME/USER_IDENTIFIER/CREATION_DATE/OBJET_ID

==> 是否可以使用 gsutil 或通过 API 获取每个用户的总体大小?

例如,如果 USER X 由“USER_1”标识,我想获取 BUCKET_NAME/USER_1 下所有对象的大小

如果有人知道如何实现这一点会很棒吗?使用标准文件名会很容易,但我找不到使用 Google Cloud Storage 实现此功能的简单方法。

谢谢,

雨果

4

3 回答 3

1

没有用于此的 API,您需要自己保留每个用户的簿记。
您可以请求某个键下的所有文件并对总文件大小求和,但此过程(非常)慢。

于 2012-07-21T13:05:10.487 回答
1

您现在可以为此使用本机 gsutil 命令:

要以人类可读的形式打印存储桶中的总字节数:

gsutil du -ch gs://bucketname

来源:https ://developers.google.com/storage/docs/gsutil/commands/du

它返回每个“文件夹”的总数和全局总数,非常方便!

于 2014-05-06T00:43:46.167 回答
1

如果用户名是有规律的结构,你可以写一个这样的脚本:

for user_id in {0..100}; do;
    echo USER ${user_id}: $(gsutil ls -l gs://BUCKET_NAME/$user_id/**) 
done

这将打印每个用户的对象数量和总数据大小(假设您的用户 ID 是简单的数值)。

正如 Shay 所指出的,如果每个用户都有大量对象,则此过程可能会非常缓慢。

于 2012-10-09T03:49:13.480 回答