我来自关系数据库背景,并尝试使用亚马逊的DynamoDB
我有一个表,其中包含一个哈希键"DataID"和一个范围"CreatedAt"以及一系列项目.
我正在尝试获取在特定日期之后创建的所有项目并按日期排序.这在关系数据库中非常简单.
在DynamoDB中,我能找到的最接近的是查询并使用大于filter的范围键.唯一的问题是,为了执行查询,我需要一个破坏目的的哈希键.
那么我做错了什么?我的表架构是错误的,哈希键不应该是唯一的吗?还是有另一种查询方式?
很抱歉让另外一个 "无法验证oauth签名和令牌"错误,但我无法弄清楚我的请求有什么问题.
我正在用这个字符串构建我的签名:
POST&http%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token&oauth_callback%3Dhttp%3A%2F%2Fcraiga.id.au%2Ftwitter%2Fconnected%26oauth_consumer_key%3Dtm5...DOg%26oauth_nonce%3D8...22b%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1275453048%26oauth_version%3D1.0
Run Code Online (Sandbox Code Playgroud)
从这里我使用以下PHP代码生成28个字符的签名:
base64_encode(hash_hmac('sha1', $raw, 'YUo...HIU' . '&', true));
Run Code Online (Sandbox Code Playgroud)
使用此签名,我发送以下请求:
POST http://api.twitter.com/oauth/request_token HTTP/1.1
Host: api.twitter.com
Pragma: no-cache
Accept: */*
Proxy-Connection: Keep-Alive
Authorization: OAuth oauth_nonce="3D8...22b", oauth_callback="http%3A%2F%2Fcraiga.id.au%2Ftwitter%2Fconnected", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1275453048", oauth_consumer_key="tm5...DOg", oauth_signature="aYd...c6E%3D", oauth_version="1.0"
Content-Length: 266
Content-Type: application/x-www-form-urlencoded
oauth_callback=http%3A%2F%2Fcraiga.id.au%2Ftwitter%2Fconnected&oauth_consumer_key=tm5...DOg&oauth_nonce=3D8...22b&oauth_signature_method=HMAC-SHA1&oauth_timestamp= 1275453048&oauth_version=1.0
Run Code Online (Sandbox Code Playgroud)
我从Twitter获得以下对此请求的回复:
HTTP/1.1 401 Unauthorized
Date: Wed, 02 Jun 2010 04:40:14 GMT
Server: hi
Status: 401 Unauthorized
X-Transaction: 1275453614-48409-7443
Last-Modified: Wed, 02 Jun 2010 04:40:14 GMT
X-Runtime: 0.01083
Content-Type: text/html; charset=utf-8
Content-Length: 44
Pragma: no-cache
X-Revision: DEV
Expires: Tue, 31 Mar 1981 …
Run Code Online (Sandbox Code Playgroud)