This is my express.js code to upload and download files to GridFS:
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); }); }
It works perfectly, but I'd like to specify a bucket to read and write from, but I'm not sure how to do that. I've seen examples online calling a GridFS constructor, but as you can see I'm not doing that here. The documentation also says that it's possible to supply a different bucket name, but I don't see anything on how.
How can I select which bucket that my files are saved to and read from?