【问题标题】:Copy/duplicate files in MongoDB, GridFS, and NodeJS在 MongoDB、GridFS 和 NodeJS 中复制/复制文件
【发布时间】:2016-07-19 17:47:17
【问题描述】:

我在 NodeJS 中使用 MongoDB 和 GridFS 来存储文件。由于要求(文件与其他数据一一对应),我需要根据客户端(AngularJS)的请求在服务器端复制/复制文件。我不仅想复制/复制 fs.files 中的相应数据,还想复制 fs.chunks 中的相应数据,并同时更新文件的元数据。我该怎么做?非常感谢。

【问题讨论】:

    标签: node.js mongodb gridfs


    【解决方案1】:

    一个方法是下面的一个

    1. 创建所需集合的转储。
    2. 使用dropDups:true 选项创建唯一索引

      db.collection('stuffs').ensureIndex({identifier: 1}, {unique: true, dropDups: true})

      dropDups 将删除所有重复的文档。

    【讨论】:

    • 非常感谢您的回复。抱歉,但似乎我的问题没有明确提出。我需要的是以下内容:应客户端(角度)的请求,应复制/复制完整的文件(使用从客户端获得的新元数据)。顺便说一句,我正在使用 gridfs-stream 并且强大。再次感谢。 PS:我刚刚在我的问题中澄清了这一点。
    • 所以你想更新文件或插入它们而不触及现有文件,即使是相同的?
    • 确实,我想在数据库中创建文件的副本/副本,并且只更改元数据。但是,我不想在 fs.files 中创建一个指向原始块的副本/副本,但我还需要复制这些块,因为这些文件与其他数据一一对应,并且在删除时其他数据,相应的文件也需要删除,因此也需要复制文件块。再次感谢!
    【解决方案2】:

    我们有相同的要求 - 在服务器上复制文件。 我们能找到的唯一方法基本上是下载并重新上传:

    bucket.openDownloadStreamByName(name)
        .pipe(buckent.openUploadStream(new_name))
    

    【讨论】:

      猜你喜欢
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 2013-08-11
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多