【发布时间】: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: "<?xml version=\"1.0\" encoding=\"utf-8\"?><BlockList><BlockId>MDAwMDAw</BlockId> <BlockId>MDAwMDAx</BlockId></BlockList>"看看这是否会有所作为。