Как заставить CloudFront обслуживать приватные файлы

Как заставить CloudFront обслуживать приватные файлы

Я хочу использовать S3 + CloudFront для обслуживания огромных файлов размером ~1,5 ГБ для скачивания (не потоковой передачи). Эти файлы являются платным премиум-контентом, поэтому я не хочу выставлять их в сети.

Как лучше всего это сделать?

AWS CLI -> загрузить S3

CloudFront -> проверка разрешений -> файлы S3

решение1

Существует несколько методов доставки подписанного контента на AWS. Стандартный метод — использование подписанных URL или подписанных файлов cookie. Если вы хотите контролировать отдельные файлы, используйте подписанные URL. Эта ссылка поможет вам понять оба:

Выбор между подписанными URL-адресами и подписанными файлами cookie

Для наглядного обзора того, как обслуживать частный контент через CloudFront:

Обслуживание частного контента через CloudFront

Для создания подписанных URL-адресов вам нужно будет написать код, который будет работать на вашем сервере. В Интернете есть множество примеров на многих языках. Amazon также предоставляет ряд примеров:

Пример кода и сторонние инструменты

После создания подписанного URL-адреса включите URL-адрес в качестве ссылки в веб-контент, который вы отправляете своему клиенту. Клиент нажимает на ссылку в своем браузере или веб-совместимом инструменте. CloudFront / S3 проверяет подпись и дату истечения срока действия, а затем доставляет содержимое файла.

Связанный контент