【发布时间】:2016-06-16 21:20:33
【问题描述】:
我正在尝试使用 SAS 将图像上传到 Azure 存储。这是我用来生成 SAS 的代码。
function getWriteSAS() {
var blobService = storage.createBlobService();
var container = 'container-name';
var blobSAS = blobService.generateSharedAccessSignature(container, mCurrentRequest.param.blobName, getSharedAccessPolicy(10));
urlForDownloading = blobService.host.primaryHost + container + '?' + blobSAS
mCurrentResponse.status(200).send({"SASURI" : urlForDownloading})
}
function getSharedAccessPolicy(accessTimeInMinutes) {
var startDate = new Date();
var expiryDate = new Date(startDate);
expiryDate.setMinutes(startDate.getMinutes() + accessTimeInMinutes);
startDate.setMinutes(startDate.getMinutes() - accessTimeInMinutes);
var sharedAccessPolicy = {
AccessPolicy: {
Permissions: storage.BlobUtilities.SharedAccessPermissions.WRITE,
Start: startDate,
Expiry: expiryDate
},
};
return sharedAccessPolicy;
}
当我尝试从浏览器点击 URL 时,我得到了这个结果。
<Error>
<script/>
<Code>AuthenticationFailed</Code>
<Message>
Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. RequestId:2fab1644-0001-0087-7c99-c77b1a000000 Time:2016-06-16T06:36:14.5020064Z
</Message>
<AuthenticationErrorDetail>
Signature did not match. String to sign used was w 2016-06-16T06:24:52Z 2016-06-16T06:44:52Z /blob/irewardchart/$root 2015-04-05
</AuthenticationErrorDetail>
</Error>
我们将不胜感激。
【问题讨论】:
-
请在此处阅读我的第二个答案:stackoverflow.com/questions/37678058/…。 HTH。
-
是的,文件名明显不见了。
-
嗨,现在有更新吗?
标签: node.js azure blob storage