【发布时间】:2017-09-20 12:22:12
【问题描述】:
我正在按照此处的说明进行操作: https://cloud.google.com/storage/docs/streaming
当我开始通过流传输到 Google Cloud Storage 的过程时,该过程必须在任何内容出现在 Google Cloud 中之前完成。如果进程以任何方式中断,则不会出现任何情况。
有没有办法实际流式传输到 gcloud 存储(甚至可以在上传完成之前开始下载?
【问题讨论】:
我正在按照此处的说明进行操作: https://cloud.google.com/storage/docs/streaming
当我开始通过流传输到 Google Cloud Storage 的过程时,该过程必须在任何内容出现在 Google Cloud 中之前完成。如果进程以任何方式中断,则不会出现任何情况。
有没有办法实际流式传输到 gcloud 存储(甚至可以在上传完成之前开始下载?
【问题讨论】:
它实际上确实通过可恢复上传进行流式传输,但在您达到可恢复块大小之前不会发送块: https://github.com/GoogleCloudPlatform/gsutil/blob/88ab2023f0dcf3d7a5444832eb547b2cbc68d7bd/gslib/util.py#L833
您可以编写一个相当简单的 python 脚本来一次生成多个,然后暂停,让您看到正在发生的上传:
import sys
import time
for i in range(3):
sys.stdout.write('a' * 1024 * 1024 * 101L)
time.sleep(10)
然后像这样通过管道将它传递给 gsutil:
python my_data_generator.py | gsutil cp - gs://BUCKET/OBJECT
观察一段时间的数据传输,在睡眠中停止,然后继续。
要减小此块大小,您可以调整 .boto 文件中的 GSUtil:json_resumable_chunk_size 选项。
【讨论】: