我的Multer中间件是这样的:
const multer = require('multer');
const path = require('path');
const storage = multer.diskStorage({
filename: function (req, file, cb) {
cb(null, Date.now() + path.extname(file.originalname))
}
});
const upload = multer({ storage: storage });
module.exports = upload;
我没有使用目的地属性,因为我正在使用cloudary进行开发,但是我的PM问我是否可以使用我们自己的文件服务器。
我的想法是这样做:
const multer = require('multer');
const path = require('path');
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'http://fileserver/catalog')
},
filename: function (req, file, cb) {
cb(null, Date.now() + path.extname(file.originalname))
}
});
const upload = multer({ storage: storage });
module.exports = upload;
但是它试图像正常路径一样打开(C:/Users/User/…)这种方法被允许吗?甚至可能吗?如果是,我该如何实现我的目标?
我认为你可以使用multer与FTP来解决你的问题,使用外部服务器,你通过FTP传递它
var multer = require('multer')
var FTPStorage = require('multer-ftp')
var upload = multer({
storage: new FTPStorage({
basepath: '/remote/path',
ftp: {
host: 'your host',
secure: true, // enables FTPS/FTP with TLS
user: 'user',
password: 'password'
}
})
})
不要忘记让别人在你的外部服务器上实现ftp-server。
https://www.npmjs.com/package/multer-ftp