将图像文件从 MongoDB 传输到 S3

将图像文件从 MongoDB 传输到 S3

我有一个 NodeJS 应用程序,它将所有数据(甚至图像)存储到 MongoDB。现在我想使用 S3 来存储我的应用程序的文件(图像,43gb),因此,我需要将我 mongo 中的所有文件传输到那里。

我找到了s3cmd可以将我的文件传输到 S3 实例(DigitalOcean 空间)的工具,但我找不到实际访问这些文件的方法。我知道它们存储在fs.filesfs.chunks集合中,但我不知道如何实际将它们用作输入s3cmd

任何帮助都感激不尽!!!

编辑:这是存储图像的格式:

fs.文件

{
  "_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=") }

答案1

您必须编写脚本或程序来从 MongoDB 检索文件并将其复制到 S3。

MongoDB 中的文件很可能以 BSON 格式存储,因此需要先进行转换。

正如您所注意到的,您正在使用 Parse - 尝试这些实用程序来提取图像。

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

相关内容