gpt4 book ai didi

python - 读取非常大的 blob 而无需在 Google Cloud 中下载它们(流媒体?)

转载 作者:太空宇宙 更新时间:2023-11-04 02:26:08 25 4
gpt4 key购买 nike

请帮忙!

[+] 我拥有的:每个桶里都有很多 Blob 。 Blob 的大小可以从小于千字节到很多千兆字节不等。

[+] 我想做什么:我需要能够流式传输这些 blob 中的数据(例如大小为 1024 的缓冲区或类似大小的缓冲区)或在 Python 中按特定大小的 block 读取它们。关键是我不认为我可以只做一个 bucket.get_blob() 因为如果 blob 是一个 TeraByte 那么我将无法将它放在物理内存中。

[+] 我真正想做的事情:解析 blob 中的信息以识别关键字

[+] 我读过的内容:很多关于如何分块写入 google cloud 然后使用 compose 将其拼接在一起的文档(一点帮助都没有)

很多java的pre-fetch函数的文档(需要是python的)

谷歌云 API

如果有人能指出正确的方向,我将不胜感激!谢谢

最佳答案

所以我发现这样做的一种方法是在 python 中创建一个类文件对象,然后使用 Google-Cloud API 调用 .download_to_file() 和该类文件对象。

这本质上是流数据。python 代码看起来像这样

def getStream(blob):
stream = open('myStream','wb', os.O_NONBLOCK)
streaming = blob.download_to_file(stream)

os.O_NONBLOCK 标志是为了让我可以在写入文件时进行读取。我还没有用非常大的文件测试过这个,所以如果有人知道更好的实现或者看到这个有潜在的失败请评论。谢谢!

关于python - 读取非常大的 blob 而无需在 Google Cloud 中下载它们(流媒体?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50380237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com