2012-07-04 398 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提供了一個測試套件,使我們能夠驗證我們的簽名實施。