我可以使用Multer上传文件到外部服务器吗?



我的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