2012-07-04 331 views
2

这都是我们需要使用dynamodb REST API的报头发送所需的头部亚马逊dynamodb

'x-amz-date': 'Mon, 16 Jan 2012 17:50:52 GMT', 
'x-amzn-authorization': 'AWS3 AWSAccessKeyId=TemporaryAccessKeyID,Algorithm=HmacSHA256,SignedHeaders=Host;x-amz-date;x-amz-target;x-amz-security-token,Signature=*Signature Value*=', 
'Date': 'Mon, 31 Oct 2011 17:49:52 GMT', 
'x-amz-target': 'DynamoDB_20111205.GetItem', 
'x-amz-security-token': '*Token Value*', 
'Content-Type': 'application/x-amz-json-1.0', 
'Content-Length': '135', 
'Connection': 'Keep-Alive', 
'User-Agent': 'aws-sdk-java/1.2.10 Windows_7/6.1 Java_HotSpot(TM)_64-Bit_Server_VM/20.2-b06', 
} 

可我知道什么是我们需要通过对发电机HTTP REST API所需的参数...我需要从dynamodb数据库中获取数据?任何人都可以建议什么是标题link

回答

1

这是不是一年,因为问题是问,所以我希望现在回答也不迟。 :-)

找出需要哪个HTTP头域的最佳方法之一就是使用AWS SDK。 AWS推荐这种方法。 (根据论坛的帖子由@AWS家伙)您可以:

  1. 启用调试日志,AWS的包(例如com.amazonaws)和可选的Apache HTTP客户端(例如org.apache.http)看看。一种简单的方法来配置log4j。就个人而言,我使用SLF4J-过JCL然后配置logback.xml
  2. 编写一个简单的程序,要求DynamoDB,确保结果是正确的,并期待在日志

例如,在一个ListTables请求,以下标头被使用:

  • 的Content-Length
  • 内容类型
  • 主机
  • 用户代理
  • X-AMZ-日期
  • X-AMZ-目标

注意,HTTP报头予以资本。日志还显示转换为小写的签名。 “内容长度”和“用户代理”是可选的,其他字段是强制性的。如果你不喜欢“x-amz-json-1.0”,“Content-Type”可以是“application/json”。

在我看来,有两个棘手的部分来实现我们自己的REST客户端,一个是做签名的权利,另一个是让头部正确。对于签名部分,AWS提供了一个测试套件,使我们能够验证我们的签名实施。