首页 文章

Cloudfront无法访问S3

提问于
浏览
2

我试图使用签名的URL图像,一旦我能够做到这一点 . 但后来,我删除了它,并试图再次这样做,我无法做到这一点 .

这是我到目前为止所做的:

  • 在IAM管理控制台中创建了一个Cloudfront密钥对 . 下载了私钥和公钥,并注意到访问密钥ID = XXXXXXXXXXXXXXXXXXXX .

  • 创建了一个S3存储桶 . 没有自定义配置

  • 使用以下设置创建了Cloudfront分发

  • Origin域名:我的桶

  • 限制存储区访问:是

  • 创建了新的Origin Access Identity

  • 授予Bucket的读取权限:选择是

  • 限制查看者访问(使用签名的URL或签名的Cookie)=是

  • 可信赖的签名者=自我

然后在我的laravel代码中,我在我的控制器中有以下内容:

$keyPairId = 'XXXXXXXXXXXXXXXXXXXX';      
$privateKey = config_path('pk-XXXXXXXXXXXXXXXXXXXX.pem');
$url = "http://xxxxxxxxxxxxxx.cloudfront.net/image.jpg";
$cf = new UrlSigner($keyPairId, $privateKey);
$imgSrc = $cf->getSignedUrl($url, time());
echo "<img src='{$imgSrc}' />";

但每次我得到同样的错误:

<Error>
<Code>MissingKey</Code>
<Message>Missing Key-Pair-Id query parameter or cookie value</Message>
</Error>

需要帮忙 .

2 回答

相关问题