有一种方法可以使用Python中的Google云存储存储桶中获取数量?

问题描述 投票:0回答:3
我需要在一桶GC中获取文件数。 我不想使用

list_blobs

来一个一一阅读它们并增加计数器。
有什么像元数据一样吗?
我需要在存储桶中下载所有文件并处理它们。现在,我想使用线程进行此操作,因此我需要以某种方式将文件分开为组。 这个想法是与

list_blobs

offset
一起使用
size
,但是要做到这一点,我需要知道总文件的数量。 任何想法?
thanks

我知道原来的问题不想使用

.list_blobs()

计算存储桶中的文件数量,但是由于我没有找到其他方式,所以我在这里发布了它以供参考,因为它确实有效:
python google-cloud-storage
3个回答
2
投票
from google.cloud import storage storage_client = storage.Client() blobs_list = storage_client.list_blobs(bucket_or_name='name_of_your_bucket') print(sum(1 for _ in blobs_list))

.list_blobs()

返回迭代器,因此此答案基本上是在迭代器上循环并计算元素。
如果您只想计算存储夹中某个文件夹中的文件,则可以使用
prefix

关键字:

blobs_list = storage_client.list_blobs(
    bucket_or_name='name_of_your_bucket',
    prefix='name_of_your_folder',
)

fyi:这个问题提出了一种解决此问题的不同方法:

如何使用Python

从GS存储桶中获取数量

没有办法进行单个元数据查询来获取计数。您可以运行一个命令:
gsutil ls gs://my-bucket/** | wc -l

但请注意,此命令在幕后提出了许多存储桶清单请求 - 如果存储桶大,则可能需要很长时间,并且将根据其进行的操作数量进行费用。

1
投票

对于那些寻找命令行答案的人,您可以使用

gsutil du gs://pub | wc -l
wringing在这里,因为这是我搜索时获得的第一个链接。 参考:

https://stackoverflow.com/a/18986955/6733421


0
投票

从Windows机器中您可以使用PowerShell计数 - 

PS1> gsutil ls gs:// bucket-name/** | measure-object

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.