2016-07-07 144 views
2

我想爲圖像使用簽名的URL,一旦我能夠做到這一點。但之後,我刪除了它,並試圖再次做到這一點,我無法做到這一點。Cloudfront無法訪問S3

這是我迄今所做的:

  1. 在IAM管理控制檯中創建一個的Cloudfront密鑰對。下載 的私鑰和公鑰,還注意到了訪問密鑰ID = XXXXXXXXXXXXXXXXXXXX。
  2. 創建了S3存儲桶。沒有自定義配置
  3. 創建具有以下設置
    • 原產地域名的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> 

需要幫助。

回答

1

對不起,我不能評論(沒有足夠的代表),但你可以登錄標識的URL來自哪個出來:如何下載或上傳自己的公鑰的更多信息事後?