2

我有以下代码来编写 gridfs 文件:

  request.body.files.toList.lastOption match {
    case Some(picture) => {
      val filename = picture.filename
      val contentType = picture.contentType
      picture.ref.moveTo(new File("/tmp/" + filename), true)

      val gridFS = new GridFS(db, "attachments")
      val fileToSave = DefaultFileToSave(filename, contentType)

      val futureResult: Future[ReadFile[BSONValue]] = gridFS.writeFromInputStream(fileToSave, new FileInputStream(new File("/tmp/" + filename)))
      ...

该代码工作正常,但是当我编写两个同名文件时,它会复制集合中的文件。我想使用文件名字段创建一个唯一索引,但这会保留第一个文件,我需要保留最新版本。我该怎么做?

谢谢,

遗传算法

4

1 回答 1

0
  1. 删除文件名的索引
  2. 上传新文件,多个文件版本同名即可
  3. 像这样重写查询:find({filename: "some-file-name.txt"}).sort({uploadDate: -1}).limit(1),结果你只得到最新的
  4. 您可以使用新上传文件中的时间戳删除所有具有相同名称和较小时间戳的文件
于 2013-08-28T23:31:27.793 回答