我对使用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自己的文档中找到的内容。
有什么想法吗?
答案 0 :(得分:0)
在对此进行更多研究之后,我发现正是私钥上的文件权限阻止了SDK对URL进行签名。