【发布时间】:2017-10-07 00:18:31
【问题描述】:
我正在尝试使用 azure 节点 SDK 生成共享访问签名,但返回的令牌不起作用/缺少一些参数。
我正在创建令牌:
app.get('/node-api/get-azure-token', (req, res, next) => {
var blobService = azure.createBlobService(myStorageAccount, myAccessKey);
var container = 'my-azure-container-name';
var startDate = new Date();
var expiryDate = new Date(startDate);
expiryDate.setMinutes(startDate.getMinutes() + 10);
startDate.setMinutes(startDate.getMinutes() - 5);
var sharedAccessPolicy = {
AccessPolicy: {
ServiceVersion: '2016-05-31',
Permissions: azure.BlobUtilities.SharedAccessPermissions.READ + azure.BlobUtilities.SharedAccessPermissions.WRITE + azure.BlobUtilities.SharedAccessPermissions.DELETE + azure.BlobUtilities.SharedAccessPermissions.LIST + azure.BlobUtilities.SharedAccessPermissions.ADD + azure.BlobUtilities.SharedAccessPermissions.CREATE,
Start: startDate,
Expiry: expiryDate,
Protocols: 'https,http'
}
};
const key = blobService.generateSharedAccessSignature(container, req.query.bloburi, sharedAccessPolicy);
res.send(key);
});
错误“服务器未能验证请求。确保 Authorization 标头的值正确形成,包括签名。使用生成的 sas 令牌时抛出。
有人遇到过这个问题吗?
【问题讨论】:
-
可以分享返回的共享访问签名吗?另外,您在
req.query.bloburi中发送什么?它是完整的 blob URI 吗? -
@GauravMantri 实际上我只是想通了!我的权限顺序错误。它们需要按照此处显示的顺序排列:docs.microsoft.com/en-us/rest/api/storageservices/…。这在文档中不是很清楚!
-
太棒了!您是否介意将其作为答案,因为它肯定会帮助其他人。
-
@GauravMantri 刚刚做到了!谢谢。
标签: javascript node.js azure azure-blob-storage