我想爲圖像使用簽名的URL,一旦我能夠做到這一點。但之後,我刪除了它,並試圖再次做到這一點,我無法做到這一點。Cloudfront無法訪問S3
這是我迄今所做的:
- 在IAM管理控制檯中創建一個的Cloudfront密鑰對。下載 的私鑰和公鑰,還注意到了訪問密鑰ID = XXXXXXXXXXXXXXXXXXXX。
- 創建了S3存儲桶。沒有自定義配置
- 創建具有以下設置
- 原產地域名的Cloudfront分佈:我鬥
- 限制分區的訪問權限:是
- 創建一個新的原產地訪問標識
- 格蘭特閱讀區權限:已選擇是
- 限制查看器訪問(使用簽名的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>
需要幫助。
我檢查了。我已經做到了。仍然無法通過。 –