Как использовать Монго и AWS для хранения файлов - PullRequest
0 голосов
/ 31 августа 2018

Я создаю веб-приложение, в котором хранится много PDF-документов, т. Е. Образовательного контента.

Я знаю тот факт, что не рекомендуется хранить pdf-файлы в моей базе данных, т.е. MongoDB.

Поэтому я планирую хранить файлы pdf в AWS и другие сведения, связанные с файлом pdf, такие как заголовок, тема, просмотры, оценки, автор и т. Д., В моей базе данных MongoDB.

Я совершенно новичок в AWS, я придумаю выход для загрузки файлов в AWS с помощью узла, но я не уверен, как мне связать файл с документом (записью) в MongoDB.

ПРИМЕЧАНИЕ. Файл должен быть связан с определенной записью таким образом, чтобы я мог легко получить файл на внешнем интерфейсе с помощью URL-адреса или чего-либо подобного, также к этим файлам не следует обращаться напрямую при открытии. по этому URL они должны быть доступны только через мой сайт.

Любые дополнительные предложения будут оценены.

Ответы [ 3 ]

0 голосов
/ 31 августа 2018

В этой статье показано нечто очень похожее на то, чего вы хотите достичь (вместо документов они работают с изображениями).

Используйте MongoDB (или DynamoDB , который является сервисом AWS) для хранения метаданных документа и S3 для хранения фактического документа. Поток будет выглядеть так: enter image description here

Обратите внимание, что в этом случае разработчик использует лямбда-функцию для сохранения метаданных. Вы можете использовать Node.js для реализации вашей лямбда-функции.

0 голосов
/ 31 августа 2018

, пожалуй, лучший подход, который я выбрал бы, это загрузить файл pdf с https://www.npmjs.com/package/multer или https://www.npmjs.com/package/formidable в экземпляр AWS EC2, сохранить метаданные файла, включая ключ объекта AWS S3, который можно использовать для получения объект из s3 с AWS SDK для JavaScript . см. Работа с объектами Amazon S3

0 голосов
/ 31 августа 2018

Возможно, вы можете добавить поле к записи монго с URL-адресом из S3?

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