来自 Python 生成器的 Google Cloud Storage 流式上传

Yan*_*nin 2 python google-cloud-storage google-cloud-sdk google-cloud-python

我有一个 Python 生成器,可以生成yield大量未知的字节数据。我想将输出流式传输到 GCS,而不先缓冲到磁盘上的文件。

虽然我确信这是可能的(例如,我可以创建一个子进程gsutil cp - <...>并将字节写入其标准输入),但我不确定推荐/支持的方式是什么,并且文档给出了上传本地文件的示例。

我应该如何正确地做到这一点?

Dav*_*vid 5

BlobWriter类使这变得更容易一些:

bucket = storage_client.bucket('my_bucket')
blob = bucket.blob('my_object')
writer = BlobWriter(blob)

for d in your_generator:
  writer.write(d)

writer.close()
Run Code Online (Sandbox Code Playgroud)