Предопределенная ошибка URL-адреса AWS Cloudfront «такой ключ отсутствует» - PullRequest
1 голос
/ 31 октября 2019

Я создаю предопределенный URL-адрес Amazon, чтобы дать моим ссылкам Cloudfront срок действия.

Ссылка работает, показывая, что объект доступен (части в полужирный защищены от переполнения стека):

http://MY URL-адрес CLOUDFRONT /3304686e4a1176617a0d515ec69abd1e4e765d4c3730e14c7.mp3

Однако объект с политикой прикрепленного не работает.

http://MY CloudFront URL / 3304686e4a1176617a0d515ec69abd1e4e765d4c3730e14c7.mp3? Политика = eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cDovL2QzMGk2b214eWxiZ3FxLmNsb3VkZnJvbnQubmV0L2F1ZGlvLzEtODNiNjMzMDQ2ODZlNGExMTc2NjE3YTBkNTE1ZWM2OWFiZDFlNGU3NjVkNGMzNzMwZTE0YzcubXAzIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNTcyNTIwNDU2fX19XX0_ & Signature = Ch4GtdMAKDe8cdBCzAMDEj3C6QeDoc68P76V0iDfH-gNawYlTqQ9M04jZB2PL4weJuV ~ 6nLT8HlHImJvtVdD17J4P1Lva24r3IC5bTdWlMVDOqOlpAV81yMppmg7kNi6Y6ySBofZ ~ 4e-WyDeDTqGLbcG ~ TQxOWOwppHaVN9nuPaLu8JX2iHD28BqHDghQXR-dGRjbCVfku5SHXsAVXPZMBEaAhpGxBMFE00gho6rGUKtgH8-TOiUmGWsxlBNjx1SGBKAwwiV ~ м-uKBR ~ ~ 6m5qLrEgJI28XmESZKjidrQsaH qbYVVyr-cyYTsJOunOSPgpyI52RJg4jkg7kJLqU9kzQ __ & Key-Pair-Id = Идентификатор моей ключевой пары

приводит к следующей ошибке

enter image description here

Как мне установить, что не так с моей политикой подписания? Возможно ли отладить этот подписанный URL? Насколько я могу установить из документации это должно работать.

Спасибо.

1 Ответ

1 голос
/ 31 октября 2019

Похоже, что даже если вы создали подписанный URL-адрес CloudFront (не предварительно подписанный URL-адрес), вы не включили «Ограничить доступ для просмотра» в поведении кэша, если вы его не включили, он не будет работать, CloudFront Signed URL

Поскольку у вас не включен параметр «Ограничить доступ к просмотру», а «Кэширование на основе строки запроса» выбрано для «ВСЕ», CloudFront отправляет имя объекта и строку запроса в Origin S3и у S3 нет объекта с таким полным именем (object + querystring).

Ошибка от S3, а не от CloudFront, ваш подписанный URL-адрес CloudFront выглядит правильно.

{"Statement":[{"Resource":"http://xxxxxxxxxxxxx.cloudfront.net/audio/1-83b63304686e4a1176617a0d515ec69abd1e4e765d4c3730e14c7.mp3","Condition":{"DateLessThan":{"AWS:EpochTime":1572520456}}}]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...