Доступ к файлам из AWS S3 Bucket - PullRequest
0 голосов
/ 03 марта 2020

Я использую NodeJS для загрузки файла в мою корзину S3. В ответ я получаю ссылку на файл.

Например, я получаю https://my-bucket-name.s3.ap-south-1.amazonaws.com/testUpload_s.txt

Корзина не разрешает доступ publi c на данный момент. Как я должен безопасно получить доступ к файлу из корзины? Я хотел бы знать, безопасен ли следующий метод?

  1. Разрешить publi c доступ для корзины

  2. Каждый файл будет предоставлен случайное уникальное имя при загрузке

  3. Это имя файла или URL-адрес ответа хранятся в базе данных

  4. Когда файл должен быть выбран, я использую ссылку полученный от загрузки ответ для доступа к файлу из корзины

Безопасен ли этот подход? Если нет, есть ли другой способ сделать то же самое?

Ответы [ 2 ]

1 голос
/ 03 марта 2020

Существует несколько вариантов предоставления клиентам доступа к объекту в S3, в том числе:

  1. сделать объект доступным c
  2. требует от клиента аутентификации с помощью AWS учетные данные
  3. предоставляют клиенту ограниченный по времени предварительно подписанный URL-адрес

Каждый из них обслуживает разные варианты использования. Используйте # 1, если доступ к файлу безопасен для всех (например, файл представляет собой изображение, отображаемое на общедоступном веб-сайте c). Используйте # 2, если у клиента есть AWS учетные данные. Используйте # 3, если вы не хотите, чтобы файл был опубликован c, но у клиента нет учетных данных AWS. Обратите внимание на # 3, что предварительно подписанный URL-адрес ограничен по времени.

0 голосов
/ 03 марта 2020

Вам не нужно хранить URL. Вы можете запросить объекты в корзине S3, используя имя файла.

Для доступа извне Используйте подписанный URL.

https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/s3-example-presigned-urls.html

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