Azure PUT BlockList返回400(块ID无效。块ID必须是base64编码的。)

时间:2016-11-14 01:24:01

标签: azure azure-storage-blobs

对于将大型文件上传到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

1 个答案:

答案 0 :(得分:1)

块ID必须是base64编码的,因为你没有这样做,你就会收到这个错误。

来自Put Block REST API文档:

  

blockid:必填。 标识的有效Base64字符串值   块即可。在编码之前,字符串必须小于或等于64   字节大小。对于给定的blob,指定值的长度   每个块的blockid参数大小必须相同。注意   Base64字符串必须是URL编码的。

相关问题