Можно ли использовать URL-адреса Amazon Cloudfront для подписывания вложений с помощью скрепки


Я использую скрепку для хранения вложений изображений на Amazon S3 и доставки их через Cloudfront. Я искал вокруг и не смог найти примеры его использования с подписанными URL-адресами для защиты контента. Интересно, знает ли кто-нибудь здесь, как это сделать?

Спасибо,

Леонард

1 3

1 ответ:

Немного поздно, но никогда не поздно для людей, ищущих ответ.

Загрузите ваши фотографии в S3, как вы обычно делаете, установите s3_permissions в private, чтобы они не имели публичного доступа через S3. Установите s3_host_alias таким образом, скрепка использует этот хост, когда запрашивает URL вложения,а затем просто подписывает этот URL.

Вы можете использовать как подписанные URL-адреса, так и подписанные файлы cookie. Например, с камнем cloudfront-signer:

has_attached_file :photo,
                  s3_permissions: :private,
                  s3_host_alias: "dcx01yp1dg1u1.cloudfront.net"

# Now photo.url will point to dcx01yp1dg1u1.cloudfront.net instead of S3
Aws::CF::Signer.sign_url photo.url, expires: Time.now + 600

См https://github.com/leonelgalan/cloudfront-signer#usage дополнительные подробности. Отказ от ответственности, я являюсь текущим хранителем этого драгоценного камня.