使用Cloudfront签名URL的InvalidArgument错误

时间:2018-08-15 15:16:17

标签: php amazon-web-services aws-sdk amazon-cloudfront

我正在使用以下代码生成一个签名的Cloudfront URL。

$cloudfront = new CloudFrontClient([
    'version' => '2014-11-06',
    'credentials' => [
         'key'=>'MyKey',
         'secret'=>'MySecret',
     ],
     'region' => 'us-east-1',
]);

$url = $cloudfront->getSignedUrl([
    'url' => 'https://cloudfronturl/path/to/resource',
    'expires' => time() + 3600,
    'private_key' => '/path/to/key.pem',
    'key_pair_id' => 'keyPairID',
]);

该代码生成一个看起来像这样的URL

https://cloudfronturl/path/to/resource?Expires=1534349477&Signature=Gppjq5ZujLaVl0MAz3xJo0whxOYb0ZbgJX9AG9QN-F-mGrwZghJiHoTlietlfm2uKRgWcGuRS14pzcggkgeL-jlOlQl3s66QCJ0ETjKpbpyMNyeXlHMo2cBYDLaB-azBxuQHbzC17SkYHAgYGIpDHvlm5BILkSnpprUNoTSxZlQjXrK6uqFLDFbWEcVJEXhHpmZqtrSLoJRfKwxPk~rGOWn1SOWDBhowMFlxBzmgxGHatUbFkq~EGo0FZpKzdBLu449Uq2WJMIb~V7PCRqc9D2A6cuDHxyYuAd5NrtMkn2qUyQ8-N12bw7JSl6aO50w7~wAJMnVOH1k~7n~Hj~OfVQ__&Key-Pair-Id=keyPairID

这已经工作了一年多了。今天,我收到警告,以这种方式生成的链接不再按预期工作。现在,链接会引发此错误:

Only one auth mechanism allowed; only the X-Amz-Algorithm query parameter, Signature query string parameter or the Authorization header should be specified

整个上午,我一直在想弄清楚为什么这么说。据我所知,我没有设置X-Amz-Algorithm参数,并且我所做的所有检查都没有显示任何Authorization标头。

0 个答案:

没有答案