2

http://mongoexplorer.com/からの次の画像を見てください。

http://mongoexplorer.com/

https://github.com/jamescarr/nodejs-mongodb-streamingを参照して、GridFS を操作しようとしています。アップロードしたファイルは正常に返され、次の get 関数を介して返されるストリームは正しく見えます。

var gridfs = (function () {
    function gridfs() { }
    gridfs.get = function (id, fn) {
        var db, store;
        db = mongoose.connection.db;
        id = new ObjectID(id);
        store = new GridStore(db, id, "r", {
            root: "fs"
        });
        return store.open(function (err, store) {
            if (err) {
                return fn(err);
            }
            return fn(null, store);
        });
    };
    return gridfs;
})();

http://mongoexplorer.com/を使用してテストするためにファイルを GridFS にアップロードしましたが、上記のノード コードを使用してファイルを取得すると壊れているように見えます。

そのとき、ファイル名/ファイル名に気付きました。ここ/node_modules/mongodb/lib/mongodb/gridfs/gridstore.jsを見ると、小文字の「N」でファイル名への参照が見られましたが、私のGridFSでは、大文字の「N」でファイル名です。

OK、キックのために、GridFS で小文字に変更しましたが、http://mongoexplorer.com/でアップロードされたファイルを取得するときに、ストリーム (上記のノードコード) でまだいくつかの破損が発生します。ただし、http://mongoexplorer.com/で [名前を付けて保存... ] をクリックすると、私の罰金は完全に元に戻ります。

私の質問に戻ると (私のテストでは何も証明されなかったので)、小文字の「N」を含むファイル名か、大文字の「N」を含むファイル名か、どちらでしょうか?

4

2 に答える 2

1

Please use the latest mongodb native driver as there are a ton of fixes for GridFS, there is a ton of examples in the github directory for the driver under the tests for usage of GridFS as streams as well.

Docs are at

http://mongodb.github.com/node-mongodb-native

In general I would say that if you use the core functionalities stick to the driver as the one you are using it using a driver that' way of of date which explains you corruption issues.

于 2012-04-23T06:50:39.383 に答える