2013-04-10 66 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和本地客户端驱动程序的升级解决了这个问题。

相关问题