Я пытаюсь использовать Подписанный URL для изображений и как только я смог это сделать. Но потом я удалил его и попытался сделать это еще раз, и я не в состоянии это сделать.Cloudfront не удалось получить доступ S3
Вот что я сделал до сих пор:
- Создано CloudFront пары ключей в консоли управления IAM. Загрузили закрытый и открытый ключ, а также отметили идентификатор ключа доступа = XXXXXXXXXXXXXXXXXXXX.
- Создано ведро S3. Нет пользовательских конфигурация
- Создана распределение CloudFront со следующими параметрами
- Происхождения доменных имен: мое ведро
- Ограничения доступ Ковша: Да
- создали новый Origin Access Идентичность
- Грант чтение разрешения на ковше : Выбрано Да
- Ограничить доступ к просмотру (использовать подписи или подписанные файлы cookie) = Да
- Надежные подписчики = Self
А потом внутри моего 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>
Нужна помощь.
Я проверил это. Я сделал это. Все еще не в состоянии пройти. –