これは、ファイルを GridFS にアップロードおよびダウンロードするための私の express.js コードです。
var fs = require("fs");
var gridStream = require("gridfs-stream");
var mongoose = require("mongoose");
exports.init = function(app, db)
{
var grid = gridStream(db, mongoose.mongo);
app.post("/UploadFile", function(request, response)
{
var file = request.files.UploadedFile;
var meta = request.param("Meta");
var name = request.param("Name");
var stream = grid.createWriteStream(
{
filename: name,
metadata: meta
});
fs.createReadStream(file.path)
.on("end", function()
{
response.send({ Success: true });
})
.on("Error", function(error)
{
HandleError(error, response);
})
.pipe(stream);
});
app.get("/DownloadFile", function(request, response)
{
var selector = request.param("Selector");
response.writeHead(200, { "Content-Type" : "image/png"});
grid.createReadStream({ filename: "FileUploadNamed" }).pipe(response);
});
}
それは完全に機能しますが、読み書きするバケットを指定したいのですが、その方法がわかりません。GridFS コンストラクターを呼び出す例をオンラインで見たことがありますが、ご覧のとおり、ここではそれを行っていません。ドキュメントには、別のバケット名を指定できるとも書かれていますが、その方法については何もわかりません。
ファイルを保存して読み取るバケットを選択するにはどうすればよいですか?