Лучший подход для загрузки и отображения изображений в корзине AWS S3

#amazon-web-services #amazon-s3

Вопрос:

Каков наилучший подход для загрузки и отображения изображений в корзине AWS S3?

 1.
Frontend <--> Backend <--> S3 Bucket
(Image shall be sent to backend, backend shall internally upload to S3 bucket)
                or
2. 
2.1 Frontend <--> Backend <--> S3 Bucket
    Frontend shall request for temporary URL of S3 Bucket
2.2 Frontend <--> S3 Bucket
    Frontend shall upload images/files using that temporary URL.

3. Any other??
 

Комментарии:

1. можете ли вы описать, какую выгоду вы видите в двухэтапном решении? Если нет, то один шаг всегда будет лучше, чем два шага. Может быть, было бы полезно показать код для обоих

2. 1. Делегирование ответственности за загрузку изображений интерфейсу. 2. Меньшая рабочая нагрузка на стороне сервера. 3. Разделение ответственности за предоставление доступа на серверную часть и ответственность за загрузку на интерфейс. 4. Конечно, сравнительно меньше счетов AWS, таких как изображения/файлы. Пожалуйста, исправьте, если мой анализ неверен.

3. ОК. Я не вижу, как можно добиться каких-либо из этих преимуществ. Может быть, если бы я увидел альтернативы коду. Честно говоря, я не понимаю, что вы подразумеваете под 2.1 — временным URL-адресом. Предполагая, что имя региона, корзины и (необязательно) родительских каталогов является статическим, интерфейс может довольно легко сгенерировать URL — адрес файла.

4. @Феликс, Вы предлагаете № 1, даже если файлы большие (т. Е. ~1G)?

Ответ №1:

Это зависит от интерфейсных/серверных технологий. В проекте я использовал Reactjs(интерфейс) и Node.js(бэкэнд). Это была довольно гладкая загрузка изображений в корзину s3 в nodejs с помощью aws sdk.

Поэтому я бы предпочел, чтобы интерфейс <—-> Серверная часть и серверная часть использовали aws sdk для загрузки изображений в корзину S3.

Полезная ссылка для загрузки изображений в корзины S3 с помощью Node.js: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-node-examples.html

Комментарии:

1. Вы предлагаете #1, даже если файлы большие (т. е. ~1 г)?