Назад | Перейти на главную страницу

Перенос файлов изображений из MongoDB в S3

У меня есть приложение NodeJS, которое хранит все свои данные, даже изображения, в MongoDB. Теперь я хочу использовать S3 для хранения файлов моего приложения (изображения, 43 ГБ), поэтому мне нужно перенести туда все файлы, которые у меня есть в моем mongo.

Я нашел s3cmd инструмент, который может передавать мои файлы в экземпляр S3 (пространство DigitalOcean), но я не могу найти способ получить доступ к этим файлам. Я знаю, что они хранятся в fs.files и fs.chunks коллекции, но я не могу понять, как на самом деле использовать их в качестве входных данных для s3cmd!

Любая помощь будет высоко ценится!!!

РЕДАКТИРОВАТЬ: это формат, в котором хранятся изображения:

fs.files

{
  "_id" : ObjectId("5ae97922c1dabec8d2d0bdb0"),
  "filename" : "2b57455f3878d11dabc9c984da7de314_postImage.jpeg",
  "contentType" : "binary/octet-stream",
  "length" : 2291623,
  "chunkSize" : 261120,
  "uploadDate" : ISODate("2018-05-02T08:38:58.549Z"),
  "aliases" : null,
  "metadata" : null,
  "md5" : "9ad420eaa7c28a73e449199430627802"
}

fs.chunks.findOne ()

{
  "_id" : ObjectId("5ae2d77f6616b4a9d93cb4b1"),
  "files_id" : ObjectId("5ae2d77f6616b4a9d93cb4b0"),
  "n" : 0,
  "data" : BinData(0,"iVBORw0KGgoAAAANSUhEUgAAAuAAAAJvCAYAAAA6OGQEAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRher38tcAAAAASUVORK5CYII=") }

Вам нужно будет написать сценарий или программу для извлечения файлов из MongoDB и копирования их на S3.

Скорее всего, файлы в MongoDB хранятся в формате BSON, поэтому их сначала нужно преобразовать.

Как вы заметили, вы используете Parse - попробуйте эти утилиты для извлечения изображений.

https://github.com/parse-server-modules/parse-files-utils