Эффективный способ загрузки изображений в s3 из android front end или nodejs backend? - PullRequest
0 голосов
/ 16 апреля 2020

В моем приложении я загружаю изображения на AWS S3, а URL-адреса изображения s3 публикуются в моей базе данных после загрузки изображений на s3. Сжатие изображений и загрузка их в s3 занимает много времени в зависимости от доступа пользователя к сети. Таким образом, пользователь должен ждать, пока изображения загружаются. Как я могу уменьшить время ожидания пользователя. Могу ли я выполнять сжатие и загрузку в фоновом режиме? Или разместите изображения с нашего бэкэнда nodejs. Каков эффективный способ? Можете ли вы предложить какой-либо другой способ для этого? Спасибо заранее!

1 Ответ

1 голос
/ 16 апреля 2020

Вы можете использовать Подписанные URL из AWS S3. Это вернет вам ссылку, которую можно использовать для прямой загрузки вашего файла на S3 без прохождения через ваш сервер. Для обработки вашего файла вы можете использовать AWS Функции Lamda, чтобы ваш сервер не получал никаких накладных расходов на обработку файлов.

Например, с NodeJS

const url = await s3.getSignedUrlPromise('putObject', {
    Bucket: 'YOUR_BUCKET',
    ContentType: 'YOUR_CONTENT_TYPE',
    ACL: 'public',
    Key: 'path/to/yourfile'
})

Приведенный выше пример вернет вас URL-адрес, который можно отправить пользователю, чтобы пользователь мог напрямую загрузить файл из приложения браузера / android в корзину S3. Вы можете просто сделать запрос PUT на возвращенный URL из вашего Android приложения.

Примечание: Измените ACL в соответствии с вашими потребностями, в примере файл общедоступен

NodeJS API

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