在一个项目中,我需要直接从浏览器访问亚马逊的 DynamoDB。node.js 有 aws-sdk-js,但浏览器端 JS 没有,所以我尝试使用 Amazon 的 HTTP API 进行访问。有没有这方面的实现?
是否有任何可用于签名过程的实现?(http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html)
在一个项目中,我需要直接从浏览器访问亚马逊的 DynamoDB。node.js 有 aws-sdk-js,但浏览器端 JS 没有,所以我尝试使用 Amazon 的 HTTP API 进行访问。有没有这方面的实现?
是否有任何可用于签名过程的实现?(http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html)
看看我博客上的一系列帖子。第 3 部分的代码几乎完全涵盖了您想要的内容,尽管是针对不同的 AWS API。但它包括签署请求:
function computeSignature(params, secretAccessKey){
var stringToSign = 'GET\nwebservices.amazon.com\n/onca/xml\n' +
createQueryString(params);
var key = sjcl.codec.utf8String.toBits(secretAccessKey);
var hmac = new sjcl.misc.hmac(key, sjcl.hash.sha256);
var signature = hmac.encrypt(stringToSign);
signature = sjcl.codec.base64.fromBits(signature);
return signature;
}
该帖子包括createQueryString
上面使用的代码。加密功能由斯坦福 JavaScript 加密库(sjcl
上面的对象)提供。
博客系列中的所有代码也在 Github 上,因此您不必从博客中逐条复制粘贴。
我必须自己实现它,但官方的 aws-sdk-js 现在支持浏览器端 JavaScript。