我目前正在为我的公司开发一个文件共享应用程序。上传文件的简单表单,然后用户会获得一个下载 URL,并且可以将其传递给任何人,以便他们可以下载文件(类似于 WeTransfer 等产品)。
但是,我正在努力决定如何去做。我一直在玩 MongoDB 和 GridFS。我已成功使用 multer 和 multer-gridfs-storage 将文件直接上传到我的数据库中。我正在努力让它们下载,因为我对 GridFS 不太了解。
const storage = new GridFsStorage({
url: 'mongodb://localhost:27017/fileUpload',
file: (req, file) => {
return new Promise((resolve, reject) => {
crypto.randomBytes(16, (err, buf) => {
if (err) {
return reject(err)
}
const filename = buf.toString('hex') + path.extname(file.originalname);
const fileInfo = {
filename: filename,
bucketName: 'uploads'
};
resolve(fileInfo)
});
});
}
});
const upload = multer({ storage })
但这让我想到这是这样做的最佳方式,还是会有更好的原因或提供这些下载文件(下载到用户计算机)。
任何意见是极大的赞赏!