对于将大型文件上传到Azure Blob存储,我有一个非常简单的测试。
我得到的回复是400: 400(块ID无效。块ID必须是base64编码。)
我上传的网址是:https://xxxx.blob.core.windows.net/tmp/af620cd8-.....&comp=blocklist
身体:
<?xml version="1.0" encoding="utf-8"?>
<BlockList>
<Latest>BLOCK0</Latest>
<Latest>BLOCK1</Latest>
</BlockList>
这是在几次成功上传块之后发生的: https://xxxx.blob.core.windows.net/tmp/af620cd8-02e0-fee2....&blockid=BLOCK0 等
这似乎没有任何东西需要Base64编码,并且块ID具有相同的确切大小(在另一篇文章中提到的内容)。还有什么我可以尝试的吗?
完整的代码在这里: https://github.com/mikebz/azureupload 具体的前端文件在这里: https://github.com/mikebz/azureupload/blob/master/formfileupload/templates/chunked.html
答案 0 :(得分:1)
块ID必须是base64编码的,因为你没有这样做,你就会收到这个错误。
来自Put Block
REST API文档:
blockid:必填。 标识的有效Base64字符串值 块即可。在编码之前,字符串必须小于或等于64 字节大小。对于给定的blob,指定值的长度 每个块的blockid参数大小必须相同。注意 Base64字符串必须是URL编码的。