Я занят приложением, похожим на ToDo, где я хочу, чтобы пользователи могли добавлять вложения к задачам.
Я борюсь с архитектурой своего приложения больше, чем с кодом.
Для моего внешнего интерфейса я использую Vuejs с Nodejs в качестве внутреннего интерфейса и MongoDB для моей базы данных, которую я рассматриваю для размещения на Heroku. Я думал использовать AWS S3 для хранения вложений для своих задач.
Я не уверен, следует ли мне загружать файлы через мой сервер Node на S3 или мне следует выполнять загрузку через предварительно подписанные URL-адреса. Также я не уверен, как лучше всего загружать вложения с S3, я думал, что лучше всего это сделать с помощью предварительно подписанных URL-адресов.
Моя главная путаница заключается в том, как сохранить индекс всех вложений задачи. Будет ли хранение индекса в MongoDB, связанного с моей моделью задач, лучшим способом сделать это? Кроме того, какие соглашения существуют относительно того, какие метаданные следует хранить?
Наконец, мне было интересно, существуют ли какие-либо соглашения относительно организации файлов, загружаемых на S3. Можно ли просто сохранить файл под идентификатором базы данных задачи? Стоит ли вообще менять имя файла?