我正在制作人脸跟踪思想视频AWS Rekognition
(StartFaceSearch
)。它将返回作业ID。我已经设置了所有SQS
SNS
部分。 这是我的问题,我无法使用receiveMessage()
从SQS接收消息。甚至listQueues()
也不起作用。它给出以下错误。
“ https://sqs.us-east-1.amazonaws.com”上的“ ListQueues”; AWS HTTP错误:客户端错误:
POST https://sqs.us-east-1.amazonaws.com
导致了403 Forbidden
响应:发件人<代码> S(已截断...) SignatureDoesNotMatch(客户端):我们计算出的请求签名与您提供的签名不匹配。检查您的AWS Secret Access密钥和签名方法。有关详细信息,请查阅服务文档。 此请求的规范字符串应为 '开机自检 / ....... <继续..........
代码如下。 AWS PHP SDK版本3.64.11。
$queueUrl = "https://sqs.us-east-1.amazonaws.com/xxxxxxx/facetrackingreceive";
// Get the client from the builder by namespace
$sqs_client = new SqsClient(array(
'credentials' => array(
'key' => 'xxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxx',
),
'version' => '2012-11-05',
'region' => 'us-east-1',
'http' => [ 'verify' => false ],
));
$result = $sqs_client->listQueues();
foreach ($result->get('QueueUrls') as $queueUrl) {
echo "$queueUrl\n";
}
谢谢!
答案 0 :(得分:0)
我已通过重新生成access key
解决了问题。我不能相信
但是有一些问题。我从关闭的issue中发现了这个想法。这个问题将近4年了,现在我遇到了同样的错误。
由于访问/保密键中的特殊字符,可能会出现问题
重新生成AWS console
中的密钥后。 SQS
的所有方法都可以与新的credentials
配合使用。将其报告为Github official repository上的错误。