【问题标题】:Upload zero size final part to Google Cloud Storage resumable upload将零大小的最终部分上传到 Google Cloud Storage 可恢复上传
【发布时间】:2020-05-30 12:10:26
【问题描述】:

使用可恢复上传时的一个常见问题是上传的最终大小在开始时是未知的。谷歌通过允许用户(感谢this SO answer)解决了这个问题:

(a) 发送一个不是 256kB 倍数的块(所需的块大小为 GCS),或

(b) 发送一个带有字节 NNN-MMM/(MMM+1) 的块。那就是 最后一个块包含上传的总大小,并指示 它包含最后一个字节

我遇到的问题是发送最后一个块是 256kB 的倍数的边缘情况,直到它已经发送到 GCS API 之后才知道它是最后一个块。我想我可以通过发送一个带有 Content-Length: 0 和 Content-Range: NNN-MMM/(MMM+1) 标题的零字节块来解决这个问题,例如(Content-Range: 262143-262143/262144 )。但这似乎不起作用,并且我收到 408 超时响应并且对象未完成。

在我上传完所有数据后,我该如何解决这个问题并告诉 GCS API 我的上传已完成?

【问题讨论】:

    标签: google-cloud-platform google-cloud-storage


    【解决方案1】:

    最后长度为 0 的数据包的问题是一个已知问题,正在 This Github Channel 上跟踪它仍然是一个悬而未决的问题。

    问题似乎是服务器将其视为0字节上传并返回之前的块已上传但客户端继续等待最后一个块的确认。

    作为一种解决方法,您可以读取当前块和后续块,当检测到后续块长度为 0 时,您可以将当前块分成两个块。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2018-07-25
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    相关资源
    最近更新 更多