Как загрузить частные файлы Amazon S3 с помощью JavaScript? - PullRequest
0 голосов
/ 25 июня 2018

У меня сложная проблема:

Я использую OpenSeadragon для просмотра больших фотографий в моем личном веб-приложении Laravel.Фотографии и плитки хранятся в моем личном хранилище Amazon S3.

Но как я могу получить доступ к этим личным фотографиям в моем компоненте javascript OpenSeadragon в безопасном месте что?

Что я сделал: я создалфункция маршрутизатора в моем приложении Laravel, которое перенаправляет на Amazon S3:

function getTiles($tile) {
  // validation && authorisation
  return redirect()->to(\Storage::disk('s3')->temporaryUrl($tile, now()->addMinutes(5)));
}

И я настроил свой компонент OpenSeadragon (согласно https://openseadragon.github.io/examples/tilesource-custom/), поэтому этот компонент загружает плитки из функции моего маршрутизатора.

Это работает, но проблема в том, что он очень медленный, потому что OpenSeadragongs загружает> 100 плиток в секунду.

Я ищу хорошее, быстрое и безопасное решение этой проблемы ...

Я могу изменить видимость папки плиток Amazon OpenSeadragon на «общедоступную» со сложным случайным именем, но любой, кто знает это имя, может загрузить фотографию. Это не хорошее решение ...

1 Ответ

0 голосов
/ 01 июля 2018

Наилучший способ добиться этого, вероятно, заключается в размещении Cloudfront перед нашим корзиной S3 и переключении с предварительно назначенных URL-адресов на предварительно назначенные файлы cookie.

Документация Cloudfront для предварительно назначенных файлов cookie находится здесь: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-cookies.html Это должно позволить вам в основном предварительно разрешить доступ ко всем подфотоснимкам для увеличения, если вы используете для этого доступ подстановочный знак.

Документы AWS о выборе между предварительно назначенными URL-адресами и предварительно назначенными файлами cookie: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-choosing-signed-urls-cookies.html Обратите внимание, что в нем конкретно упоминается « Вы хотите предоставить доступ к нескольким ограниченным файлам, например, ко всем файлам для видео в формате HLS или ко всем файлам в области подписчиков на веб-сайте. »

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...