答案 0 :(得分:3)
我相信你已经正常上传到服务器了。要实现可恢复的上载,您必须将文件拆分为块并指定要发送到服务器的文件的字节范围。我可以就此给你一个粗略的想法。
例如:假设您有一个5 MB(百万字节)的文件。您必须按如下方式发送文件。
第1部分:0000000- 9999999字节-HTTP 204
第2部分:1000000- 1999999字节-HTTP 204
第3部分:2000000- 2999999字节-HTTP 204
第4部分:3000000- 3999999字节-HTTP 204
第5部分:4000000- 4999999字节 - HTTP 200
设置以下标题
Content-Length: 1000000
Content-Range: bytes 1000000/5000000
您必须指定内容范围并发送相应的字节流数组。除非文件完整,否则所有成功的块上传都将返回204.如果您在任何时候上传中断,您可以轮询服务器并获取上载状态。可以从文件的那一点开始恢复以完成它破坏的块。我们将文件分成块,因为我们无法将整个内容保存在内存中。可以将整个文件作为单个部分发送,并在较小文件的确切字节点处继续。
另一种选择是在本地管理索引。完成每个块后,将索引变量的状态更新为文件。如果要恢复上传,您可以从头开始恢复整个块。您不必轮询服务器以获取状态。
成功完成上传后,服务器返回200状态(即使您将整个文件上传到设置了标题的单个块中)。有关详细信息,请参阅Youtube的文档或Pandastream。
https://developers.google.com/youtube/2.0/developers_guide_protocol_resumable_uploads