gpt4 book ai didi

javascript - Azure 帐户共享访问签名

转载 作者:行者123 更新时间:2023-12-03 05:55:48 24 4
gpt4 key购买 nike

我正在尝试构建帐户级别共享访问签名,以便我的客户端可以访问存储帐户中的所有容器。我正在关注这些文档 Account SAS 。这看起来很简单,但我不断收到以下错误消息:

“签名不匹配。使用的签名字符串是帐户名\nrl\nb\nsc\n\n2016-10-09\n\n\n2015-04-05\n”。

我的参数是相同的,所以我怀疑它与我对要签名的字符串进行哈希处理的方式有关。下面是我构建 token 的方法。

var crypto = require('crypto');
var accountName = 'accountname';
var accountKey = 'tH37FTlG3TUT86caMrt2y5kOzof8nFqqA6spzg6r7HPRojE1zDiLJD/xE4oLFDh4RNqAmymvlV7fm8W4SF8cJg==';

var signedPermissions = "sp=rl";
var signedServcies = "ss=b";
var signedResourceType = "srt=sc";
var signedExpiry = "se=2016-10-09";
var signedVersion = "sv=2015-04-05";

var stringToSign = accountName + "\n" + signedPermissions + "\n" + signedServcies + "\n" + signedResourceType + "\n" + signedExpiry + "\n" + signedVersion + "\n";
var hmacsha256 = crypto.createHmac('sha256', accountKey).update(stringToSign).digest('base64');
var token = signedPermissions + "&" + signedServcies + "&" + signedResourceType + "&" + signedExpiry + "&" + signedVersion + "&sig=" + hmacsha256;

我也尝试过使用 crypto-js 但没有成功。用于访问容器中的 blob 的最终 URL 是...

"https://accountname.blob.core.windows.net/containername/blobName?srt=sc&se=2016-10-09&api-version=2015-04-05&sp=rl&ss=b&sv=2015-04-05&sig=IFD2wyfRAsHGU5IFg3RbwSJW6tRE0m0%2FxgAYvJ%2FmnEk%3D "

我已经尝试了好几天,并且非常希望知道我做错了什么。谢谢。

最佳答案

Benzene,对于 stringToSign,值不应该包含参数名称?


varsignedPermissions = "rl";
varsignedServcies =“b”;
varsignedResourceType =“sc”;
varsignedExpiry =“2016-10-09”;
varsignedVersion = "2015-04-05";

关于javascript - Azure 帐户共享访问签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39934737/

24 4 0
文章推荐: javascript - 按下按键而不是单击按钮
文章推荐: javascript - 如何拆分Swift消息?
文章推荐: javascript - 如何在下一步单击时跳过多步骤表单中的一个字段集
文章推荐: javascript - 如何选择文本中的
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com