创建签名的URL-生成的URL缺少签名

时间:2018-12-31 05:38:47

标签: amazon-s3 aws-php-sdk

我对使用aws-sdk-php非常陌生,我正在尝试为Cloudfront创建一个签名URL(指向S3存储桶中的对象)。我的代码如下(使用aws-sdk-php):

function test_cloudfront_signed_url(){
require ABSPATH . 'vendor/autoload.php';

$cloudFront = new Aws\CloudFront\CloudFrontClient([
  'region'  => 'us-west-2',
  'version' => 'latest'
]);

// Setup parameter values for the resource
$resourceKey = 'REDACTED';
$expires = time() + 300;

// Create a signed URL for the resource using the canned policy
$signedUrlCannedPolicy = $cloudFront->getSignedUrl([
  'url'         => $resourceKey,
  'expires'     => $expires,
  'private_key' => '/path/to/key/REDACTED.pem',
  'key_pair_id' => 'REDACTED'
]);

echo $signedUrlCannedPolicy;
}

会生成一个URL,但是每当我尝试访问该URL时,总会收到一条错误消息,提示“缺少签名查询参数或cookie值”。也许我没有正确使用SDK,但是我不确定自己做错了什么。我的私钥到位了。

大部分代码来自我在AWS自己的文档中找到的内容。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在对此进行更多研究之后,我发现正是私钥上的文件权限阻止了SDK对URL进行签名。