reader.onloadend = function (evt) {
if (evt.target.readyState == FileReader.DONE) { // DONE == 2
submitUri = "https://mediasvclb3ql3sjdqfh8.blob.core.windows.net/asset-4205a03a-0d00-80c4-6d1d-f1e5bd379a7f/sample.mp4?sv=2012-02-12&sr=c&si=180e3bdd-0856-4001-85b5-9aa455505ca3&sig=y0PFiMampL7sscrdcxcm4itTHNNeXhVc0JJGxFNiVuc%3D&st=2016-01-17T18%3A05%3A20Z&se=2115-12-24T18%3A05%3A20Z";
// var uri = submitUri;
var uri = submitUri; //+ '&comp=block&blockid=' + blockIds[blockIds.length - 1];
var requestData = new Uint8Array(evt.target.result);
$.ajax({
url: uri,
type: "PUT",
data: requestData,
processData: false,
beforeSend: function(xhr) {
xhr.setRequestHeader('content-type', 'application/octet-stream');
xhr.setRequestHeader('x-ms-version', '2014-02-14');
xhr.setRequestHeader('x-ms-blob-type', 'BlockBlob');
// xhr.setRequestHeader('Content-Length', requestData.length);
},
success: function (data, status) {
console.log(data);
console.log(status);
bytesUploaded += requestData.length;
var percentComplete = ((parseFloat(bytesUploaded) / parseFloat(selectedFile.size)) * 100).toFixed(2);
$("#fileUploadProgress").text(percentComplete + " %");
uploadFileInBlocks();
},
error: function(xhr, desc, err) {
console.log(desc);
console.log(err);
}
});
}
};
我是通过示例here
制作的您可以运行代码http://megamedia.cloudapp.net/uploader.html
我做错了什么?为什么我的文件没有上传?
答案 0 :(得分:2)
我已经从我这边复制了这个问题。事实证明,您没有为SAS令牌指定足够的权限。对于上传操作,您需要指定" sp = rw " SAS令牌中的权限。 有关详细信息,请查看此文章:https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-shared-access-signature-part-1/
以下是我的测试,供您参考:
场景1 :在没有写入权限的情况下生成SAS令牌。
的https://.blob.core.windows.net/test1/sample.mp4 SV = 2014年2月14日&安培; SR = C&安培; SIG = XnmDhSnec43Mm06tXtRoqJu8r3CPFXYbzE5%2FJW9c27Q%3D&安培; ST = 2016-01-18T16% 3A00%3A00Z& se = 2016-01-26T16%3A00%3A00Z& sp = r
场景2 :使用写入权限生成SAS令牌。
的https://.blob.core.windows.net/test1/sample.mp4 SV = 2014年2月14日&安培; SR = C&安培; SIG = vOYJfGN%2F0TJrgoIoiYqLWm%2FF7A4dkhrDyUChQlVbUN0%3D&安培; ST = 2016-01- 18T16%3A00%3A00Z&安培; SE = 2016-01-26T16%3A00%3A00Z&安培;的 SP = RW 强>
请注意参数" sp"在SAS令牌中指定的 sp = r 表示您只具有此令牌的读取权限, sp = rw 意味着阅读和写入权限。希望这能帮助你。
编辑:
只需共享可轻松生成SAS令牌的工具Azure Storage Explorer 6。