Как правильно загружать фотографии/файлы в приложении с развязкой Django + Angular на S3?

У меня есть несвязанная сборка приложений с Django 2, API с DRF и интерфейсное приложение Angular 6. Я хочу, чтобы пользователи могли загружать фотографии для своих профилей и, возможно, в будущем некоторые PDF-файлы, и после некоторых исследований я понял, что наиболее удобным будет хранить эти файлы в корзине Amazon S3.

Я нашел множество ресурсов о том, как загружать файлы в корзину S3 как на Angular, так и на Django, и теперь мне было интересно, как лучше всего сделать это в моем несвязанном приложении: должен ли я управлять им во внешнем интерфейсе, а не использовать мой бэкэнд вообще? или я должен передать файл из моего углового в мое приложение Django, а затем загрузить его оттуда в корзину?

Некоторые плюсы и минусы обоих подходов? Я делаю это впервые, и мне не удалось найти много ресурсов для несвязанных приложений.

Любая помощь приветствуется! Спасибо!


person AGranero12    schedule 30.07.2018    source источник


Ответы (1)


Лучшая практика

Все, что связано с данными, должно управляться вашим бэкэндом, то есть Django, Angular — это просто клиент.

Вы должны передать файл из angular в приложение Django, а затем загрузить его в корзину s3 оттуда.

Минусы использования клиента

Предположим, что в будущем, если вы будете разрабатывать мобильные приложения для использования остальных API, вам также потребуется переписать все управление.

Вы должны хранить свои API-ключи корзины s3 на клиенте, и они легко доступны для хакеров.

dist размер папки будет увеличиваться, что повлияет на время загрузки вашего сайта

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

person Satendra    schedule 31.07.2018