0

这个问题是我之前关于让 EC2 API 调用 REST API 的问题的后续问题。

完成这项工作后,我想对其进行概括并尝试了几件事。例如,我尝试按区域名称过滤并发出请求

https://ec2.amazonaws.com/?Action=DescribeRegions
&RegionName.1=us-east-1
&RegionName.2=eu-west-1

他们在文档中显示。

签名很容易,将 RegionName(s) 按字母顺序粘贴到签名请求中,然后像没有它们一样对整个内容进行签名。结果很好。

因此,我进入了他们在文档中提供的第二个示例。

https://ec2.amazonaws.com/?Action=DescribeRegions
&Filter.1.Name=endpoint
&Filter.1.Value.1=*ap*

好的,我尝试根据需要将过滤器放入按字母顺序排序的位置中的签名参数中...

char * signing_parameters_template =
    "AWSAccessKeyId=%s&"
    "Action=DescribeRegions&"
    "Filter.1.Name=endpoint&"
    "Filter.1.Value=*ap*&"
    "SignatureMethod=HmacSHA256&"
    "SignatureVersion=2&"
    "Timestamp=%s&"
    "Version=2013-08-15";

并签字。我收到签名不匹配的错误。我已经尝试了很多这样的变化,没有运气。

如何签署包含过滤器的请求?

4

1 回答 1

0

我必须转义过滤器中的“*”

"Filter.1.Value=*ap*&"

就是这样!

于 2013-09-23T11:29:10.553 回答