我正在尝试解决使用文件块通过 api 上传视频的问题。我有一个 4704384 字节的示例文件,我正在发送最大大小为 1048576 字节的块。所以会有 4 块 1048576 和 1 块 510080。这些块似乎可以很好地发送到 Vimeo,但是当我调用 vimeo.videos.upload.verifyChunks 时,我得到了这个响应:
<?xml version="1.0" encoding="UTF-8"?>
<rsp generated_in="3.8400" stat="ok">
<ticket id="cf2c9a26eea3aaffb9b4593efc1e0eda">
<chunks>
<chunk id="cf2c9a26eea3aaffb9b4593efc1e0eda" size="511436"/>
</chunks>
</ticket>
</rsp>
由于与实际文件数据一起发送的其他 http 标头,块大小是否与我的任何预期块不匹配?另外,这里是否存在问题,因为响应的格式与 Vimeo 上传 api 页面上的示例响应不匹配?他们的例子:
<?xml version="1.0" encoding="utf-8"?>
<rsp stat="ok" generated_in="0.0028">
<ticket id="abcdef124567890">
<chunk id="0" size="678900" />
<chunk id="1" size="678900" />
<chunk id="2" size="4003" />
</ticket>
</rsp>
为什么我的所有chunk都合并到一个条目中,并且id与ticket id相同?
当我调用 vimeo.videos.upload.complete 时,我得到了这个:
<?xml version="1.0" encoding="UTF-8"?>
<rsp generated_in="2.3289" stat="fail">
<err code="708" expl="The file could not be saved. Try again." msg="File error"/>
</rsp>
我该如何解决这个问题才能弄清楚发生了什么?
更新:我认为我的问题是我试图通过 PUT 发送多个块,用于流式传输整个文件。要上传块,它需要是一个 POST。但是当我尝试发布到 Vimeo 时,我收到此错误:“已建立的连接已被主机中的软件中止”。我已尝试禁用建议修复此错误的防病毒和 Windows 防火墙,但没有帮助。