谷歌云存储 - 确定每个用户的目录大小

问题描述:

我已经创建了一个存储桶,用于为我的所有用户存储数据。该目录的结构如下:谷歌云存储 - 确定每个用户的目录大小

- > BUCKET_NAME/USER_IDENTIFIER/CREATION_DATE/OBJET_ID

==>是否有可能gsutil所或通过API来获取整体尺寸为每个用户?

例如,如果用户X是由“USER_1”标识,我想获得下BUCKET_NAME/USER_1

所有对象的大小将是巨大的,如果有人有一个想法如何实现这一点?使用标准的文件名,这将是相当容易的,但我找不到一个简单的方法来实现这与谷歌云存储。

感谢,

雨果

您现在可以使用原生的gsutil命令为:

要打印的总字节数水桶,在人类可读的形式:

的gsutil杜-CH GS :// bucketname

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

它返回一个总共“文件夹”和全球总额,这是超方便的!

没有为一个API,你将需要保持每个用户的簿记你的自我。
您可以请求某个键下的所有文件并总计文件总大小,但此过程非常缓慢。

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

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

这将打印每个用户对象和总的数据量的数量(假设你的用户ID是简单的数值)。如Shay指出的那样,如果每个用户都有大量的对象,那么这个过程可能非常缓慢。