我使用签名网址使用Air从移动设备上传blob。
我有两个问题:
使用签名URL上传blob时,我假设我不需要包含文档中描述的所有标头。我是否正确地认为我只需要对网址发出PUT
请求,并将Content-Type
设置为multipart/form-data; boundary=[[boundary here]]
的文件中包含编码的文件?
var client:HttpClient = new HttpClient();
var request:HttpRequest = new Put();
request.body = UploaderPostHelper.getPostData( filename, byteArray);
request.contentType = 'multipart/form-data; boundary=' + UploaderPostHelper.getBoundary();
client.request(new URI(signedUrl), request);
http://msdn.microsoft.com/en-us/library/windowsazure/dd179451.aspx
(UploadPostHelper的源代码在这里https://code.google.com/p/as3asclublib/source/browse/trunk/net/UploadPostHelper.as)
其次,我可以指定我想使用POST请求和标头执行PUT请求吗?
干杯。
答案 0 :(得分:3)
使用签名URL上传blob时,我认为我不需要 包括文档中描述的所有标题。
您需要指定2个标头 - Content-Length
和x-ms-blob-type
。我假设您将文件保存为块blob,因此x-ms-blob-type
的值应为BlockBlob
。
Content-Type
也应该是文件的内容类型,例如plain/txt
,image/gif
等。
其次,我可以指定我想使用a来执行PUT请求 POST请求和标题?
不确定这个。您的请求的HTTP
方法应为PUT
。
答案 1 :(得分:2)
x-ms-version,Authorization,Date或x-ms-date,Content-Length和x-ms-blob-type都是PUT操作所必需的。 Content-Type是可选的。
请参阅http://msdn.microsoft.com/en-us/library/windowsazure/dd179451.aspx。