Создание подписанных URL-адресов S3 и Cloudfront с помощью AWS SDK
Кто-нибудь успешно использовал AWS SDK для создания подписанных URL-адресов для объектов в корзине S3, которые также работают через CloudFront? Я'м, используяJavaScript AWS SDK и это'Очень просто генерировать подписанные URL-адреса по ссылкам S3. Я только что создал приватное ведро и использую следующий код для генерации URL:
var AWS = require('aws-sdk')
, s3 = new AWS.S3()
, params = {Bucket: 'my-bucket', Key: 'path/to/key', Expiration: 20}
s3.getSignedUrl('getObject', params, function (err, url) {
console.log('Signed URL: ' + url)
})
Это прекрасно работает, но я также хочу предоставить URL-адрес CloudFront моим пользователям, чтобы они могли получить повышенную скорость загрузки с использованием CDN. Я установил дистрибутив CloudFront, который изменил политику корзины, чтобы разрешить доступ. Однако после этого любой файл мог быть доступен через URL-адрес CloudFront, и Amazon, похоже, проигнорировал подпись в моей ссылке. Прочитав еще немного об этом яМы видели, что люди генерируют файл .pem для получения подписанных URL-адресов, работающих с CloudFront, но почему это не нужно для S3? Похоже, что метод getSignedUrl просто выполняет подписание с использованием секретного ключа AWS и ключа доступа AWS. Кто-нибудь получил настройки, как это работает раньше?
Обновить: После дальнейших исследований выяснилось, что CloudFront обрабатывает URL-подписи, полностью отличающиеся от S3[ссылка на сайт], Однако я'Мне до сих пор неясно, как создать подписанный URL-адрес CloudFront с помощью Javascript.