Я пытаюсь создать ссылку на общий доступ на уровне аккаунта, чтобы мой клиент мог получить доступ ко всем контейнерам в учетной записи хранилища. Я следую этим документам Account SAS. Это кажется достаточно прямым, но я продолжаю получать следующее сообщение об ошибке:Azure Account Shared Access Signiture
«Подпись не соответствует. Строка для обозначения использовала имя учетной записи \ nrl \ nb \ nsc \ n \ n2016-10-09 \ n \ n \ n2015 -04-05 \ п».
Мои параметры идентичны, поэтому я подозреваю, что это имеет какое-то отношение к тому, как я смешиваю строку для подписи. Ниже я расскажу, как я создаю токен.
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;
Я также пробовал использовать крипто-js, но безрезультатно. Конечный URL, используемый для доступа к блобы в контейнере ...
Я пытался в течение нескольких дней и действительно хотел бы знать, что я делаю неправильно. Благодарю.
Если бы это был фактический ключ вашего счета, то я хотел бы предложить, чтобы изменить его немедленно вызвать кто-нибудь с этим ключом будет иметь возможность получить доступ к учетной записи –