【问题标题】:Azure storage 'put block list' returns 400Azure 存储“放置块列表”返回 400
【发布时间】:2015-07-14 05:13:50
【问题描述】:

我正在尝试使用 SAS 将块 blob 上传到 Azure 存储。我已成功上传块(通过调用 GET 阻止列表进行验证),但我无法让 PUT 阻止列表工作。我收到“错误请求 400”。

正文使用 UTF8 (Swift) 编码:

body.dataUsingEncoding(NSUTF8StringEncoding)!

以下是请求和响应:

URL: http://myMovies.blob.core.windows.net:80/movies-pub/LTE6BB22F5-703F-4CA6-9BDE-A8F0DFBD3964.mp4?se=2015-06-14T23%3A21%3A42Z&sr=b&sp=rw&sig=EqUOKdjbz2YJfJDkZP7c2YRWvGow70T8dLJym4fy9iA%3D&comp=blocklist

BODY: "<?xml version=\"1.0\" encoding=\"utf-8\"?><BlockList><Latest>MDAwMDAw</Latest><Latest>MDAwMDAx</Latest></BlockList>"

Server Response: 400
    AllHeaderFields: {
    "Accept-Language" = "en;q=1, da;q=0.9, de;q=0.8, es;q=0.7, fr;q=0.6";
    "Content-Length" = 111;
    "Content-Type" = "text/plain; charset=UTF-8";
    "User-Agent" = "MyApp/1.0 (iPhone; iOS 8.3; Scale/2.00)";
    "x-ms-blob-content-type" = "video/mp4";
}
Error: Request failed: bad request (400)

【问题讨论】:

  • 您可以利用 Fiddler 捕获响应以获取更多错误信息。据我所知,您的共享访问签名中似乎缺少“sv=”。
  • 请尝试将您的 BODY 更改为以下内容:BODY: "&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;&lt;BlockList&gt;&lt;BlockId&gt;MDAwMDAw&lt;/BlockId&gt; &lt;BlockId&gt;MDAwMDAx&lt;/BlockId&gt;&lt;/BlockList&gt;" 看看这是否会有所作为。

标签: azure azure-blob-storage


【解决方案1】:

正如肇兴已经提到的,我也看到“sv=”不见了。

【讨论】:

    猜你喜欢
    • 2013-01-29
    • 2019-08-31
    • 2016-04-23
    • 2017-11-06
    • 2016-02-24
    • 1970-01-01
    • 2018-08-13
    • 2013-04-02
    • 1970-01-01
    相关资源
    最近更新 更多