【问题标题】:MongoDB (Node.js Native driver) large gridfs upload failsMongoDB(Node.js 本机驱动程序)大型 gridfs 上传失败
【发布时间】:2013-04-10 21:12:43
【问题描述】:

当我尝试将大文件(1.8GB)上传到 GridFS 时,Mongodb 似乎任意提前返回。较小的文件也可以正常工作。

我正在使用 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
        }
    });
});

“doc”对象似乎总是以不同的长度返回(显然是不同的 md5)。

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    问题显然与 Node 的流实现的早期版本有关。 10Gen 的 Node 驱动程序团队编写了新版本的驱动程序以使用更新的 Node 流实现。因此,Node 和本机客户端驱动程序的升级解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-18
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 2012-09-23
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      相关资源
      最近更新 更多