簡體   English   中英

如何使用reactmongo在Play框架中覆蓋gridfs文件?

[英]How to override a gridfs file within the Play Framework using reactivemongo?

我有以下代碼來編寫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)))
      ...

代碼工作正常,但是當我用相同的名稱編寫兩個文件時,它會復制集合中的文件。 我以為使用文件名字段創建唯一索引,但這將保留第一個文件,而我需要保留最新版本。 我該怎么做?

謝謝,

GA

  1. 刪除文件名的索引
  2. 上傳新文件,如果多個文件版本具有相同的名稱,則可以
  3. 將查詢改寫成類似以下內容:find({filename:“ some-file-name.txt”})。sort({uploadDate:-1})。limit(1),結果只會得到最新的
  4. 您可以使用新上傳文件中的時間戳刪除所有具有相同名稱和較小時間戳的文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM