NodeJs Amazon Api和aws

时间:2014-03-22 14:06:24

标签: node.js amazon-web-services amazon-ec2 amazon-s3

我使用以下库来处理amazon产品api,这实际上非常酷 ( - > https://github.com/livelycode)但我仍然坚持某一点。 我设法检索回复,但不知何故我在错误的区域搜索

如何将api设置为当前区域? 我猜我已经有了欧盟地区的员工ID,所以我想我错过了一些配置 这就是我所拥有的:

var region = {
  host: "ec2.eu-west-1.amazonaws.com", // use a different region to the default
};

var prodAdv = aws.createProdAdvClient('xxx', 
    'xxx', 'xxx-21',  region);

var options = {SearchIndex: "Books", Keywords: "Javascript"}

prodAdv.call("ItemSearch", options, function(err, result) {
    //console.log(JSON.stringify(result.Items.Item[0]));
    console.log(result.Items.Item[0]);

});

目前它运行此服务http://webservices.amazon.com/AWSECommerceService/2011-08-01,但我真的想将其更改为amazon.de

谢谢

2 个答案:

答案 0 :(得分:0)

对于稍后可能对此感兴趣的人。

我切换到https://github.com/dmcquay/node-apac,只是覆盖了defaultEndPoint

var util = require('util'),
    OperationHelper = require('apac').OperationHelper;

OperationHelper.defaultEndPoint = 'ecs.amazonaws.de'

var opHelper = new OperationHelper({
    awsId:     'xxx',
    awsSecret: 'xxx',
    assocId:   'xxx-'
});

opHelper.execute('ItemSearch', {
  'SearchIndex': 'Books',
  'Keywords': 'harry potter',
  'ResponseGroup': 'ItemAttributes,Offers'
}, function(results) {
    console.log(results.ItemSearchResponse.Items[0].Item);
});

我很确定,在其他库中也可以这样。

最佳

答案 1 :(得分:0)

刚刚遇到同样的问题。 我的解决方案是在创建

时重写选项
var prodAdvOptions = {host: "ecs.amazonaws.de", region: "DE"};
var prodAdv = aws.createProdAdvClient('yourAccessKeyId', 'yourSecretAccessKey', 'yourAssociateTag', prodAdvOptions );

使用prodAdvOptions,您可以更改区域和主机。