Google云存储:pythonapi使用通配符获取blob信息

2024-09-27 21:32:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从bucket获取blob信息,但我想在blob name中使用通配符。想想我的桶

$ gsutil ls gs://myBucket/myPath/
gs://myBucket/myPath/
gs://myBucket/myPath/ranOn=2018-12-11/
gs://myBucket/myPath/ranOn=2018-12-12/
gs://myBucket/myPath/ranOn=2018-12-13/
gs://myBucket/myPath/ranOn=2018-12-14/
gs://myBucket/myPath/ranOn=2018-12-15/
gs://myBucket/myPath/ranOn=2019-02-18/
gs://myBucket/myPath/ranOn=2019-02-19/
gs://myBucket/myPath/ranOn=2019-02-20/
gs://myBucket/myPath/ranOn=2019-02-21/

现在从命令行,我可以

^{pr2}$

所以我也可以做同样的尺寸

$ gsutil du -sh gs://myBucket/myPath/ranOn=2018*
2.7 G

现在,我想对pythonapi做同样的事情。这是我试过的

from google.cloud import storage

storage_client = storage.Client()
bucket = storage_client.get_bucket('myBucket')
blob = bucket.get_blob('myPath/ranOn=2018*')
print('Size: {} bytes'.format(blob.size))
Size: None bytes

为什么这样不行?如何使用pythonapi在blob路径中使用通配符?在


Tags: clientgs信息pythonapisizegetbytesbucket
1条回答
网友
1楼 · 发布于 2024-09-27 21:32:49

不幸的是,get_blob只是用来获取单个文件,而不是多个文件。在

您需要迭代所有与前缀匹配的文件,并对它们的大小求和以得到总大小。在

blobs = bucket.list_blobs(prefix="myPath/ranOn=2018")

total = sum([blob.size for blob in blobs])

相关问题 更多 >

    热门问题