使用rest api上传Azure blob

时间:2013-09-17 09:14:03

标签: azure azure-storage azure-storage-blobs

我使用签名网址使用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请求吗?

干杯。

2 个答案:

答案 0 :(得分:3)

  

使用签名URL上传blob时,我认为我不需要   包括文档中描述的所有标题。

您需要指定2个标头 - Content-Lengthx-ms-blob-type。我假设您将文件保存为块blob,因此x-ms-blob-type的值应为BlockBlob

Content-Type也应该是文件的内容类型,例如plain/txtimage/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