【发布时间】:2019-12-11 17:13:55
【问题描述】:
我正在尝试设置一个 API 来从 Azure 表存储中获取信息。我一直在关注文档 here 和 SO here 上的类似问题,但我无法让它工作。我收到 HTTP 403 错误 “服务器无法验证请求。确保 Authorization 标头的值正确形成,包括签名。”。这是代码。现在我只是尝试对 /Tables 资源进行基本查询以开始工作,但最终我将查询特定的 rowID。
const crypto = require("crypto");
const request = require('request-promise-native');
const yourStorageAccountName = 'XXXXXXXX';
let CanonicalizedResource = `${yourStorageAccountName}/Tables`;
let url = `https://${yourStorageAccountName}.table.core.windows.net/Tables`;
let now = new Date();
let nowUTC = now.toUTCString();
let stringToSign = `GET\n\n\n${nowUTC}\n${CanonicalizedResource}`;
let accesskey = `YYYYYYYY`;
let key = new Buffer(accesskey, "base64");
let hmac = crypto.createHmac("sha256", key);
hmac.update(stringToSign);
let sig = hmac.digest("base64");
console.log("SIGNATURE : " + sig);
console.log("nowutc : " + nowUTC);
let headers = {
"Authorization": "SharedKey " + yourStorageAccountName + ":" + sig,
"x-ms-date": nowUTC,
"Date": nowUTC,
"x-ms-version": "2015-12-11"
};
var response = request({
url: url,
method: 'GET',
headers: headers
});
console.log(response);
【问题讨论】:
标签: node.js azure-table-storage