2013-04-10 81 views
1

當我嘗試將大文件(1.8GB)上傳到GridFS時,Mongodb似乎會隨意返回。較小的文件工作得很好。MongoDB(Node.js本地驅動程序)大型網格上傳失敗

我正在使用node.js本地驅動程序。代碼(與略去了一些東西)如下:

var objectId = new ObjectID(), 
gridStore = new GridStore(db, objectId, filename /*declared elsewhere*/, "w", { "content_type": contentType /* declared elsewhere */ }), 
obj = {}; 

gridStore.open(function (err, gs) { 
    console.log("gridStore open"); 
    gs.writeFile(tempFile, function (err, doc) { 
     if (err) { 
      throw err; 
     } 

     console.log("file written"); 
      obj.fileId = doc._id; 

     // double check the md5 of the uploaded file against what was uploaded 
       // (md5 variable declared elsewhere) 
     if (doc.md5 !== md5) { 
      console.log(doc); 
      console.log(doc.md5); 
      console.log(md5); 
      //delete bad file 
      GridStore.unlink(db, doc.filename, function (err, gridStore) { 
       if (err) { 
        throw err; 
       } 
      }); 

     } else { 
      // do the desired stuff 
     } 
    }); 
}); 

的「文檔」對象似乎總是有不同的長度(和明顯不同的MD5)返回。

回答

0

該問題顯然與早期版本的Node流實現有關。 10Gen的節點驅動程序團隊編寫了驅動程序的新版本以使用更新的節點流實現。所以,Node和本地客戶端驅動程序的升級解決了這個問題。

相關問題