2013-04-10 3 views
1

큰 파일 (1.8GB)을 GridFS에 업로드하려고 할 때 Mongodb이 일찍 돌아 오는 것 같습니다. 작은 파일은 잘 작동합니다.MongoDB (Node.js 네이티브 드라이버) 큰 gridfs 업로드가 실패합니다.

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

노드의 스트림 구현 이전 버전에서 분명히 문제가있었습니다. 10Gen의 노드 드라이버 팀은 새로운 노드 스트림 구현을 사용하기 위해 새 버전의 드라이버를 작성했습니다. 따라서 Node와 네이티브 클라이언트 드라이버를 업그레이드하면이 문제가 해결되었습니다.