上传文件到远程服务器使用multer sftp在express Node js?

我试图使用节点js中的multer-sftp将file upload到远程服务器。 因为我正在关注官方文档npm multer-sftp 。 以前我已经将file upload到Amazon S3而不是远程服务器。 现在我想上传文件到远程服务器。

API:

exports.newFileUpload = function(req , res , next){ var storage = sftpStorage({ sftp: { host: 'http://www.port*****es.in/', port: 22, username: 'username', password: 'password' }, destination: function (req, file, cb) { cb(null, 'images/') }, filename: function (req, file, cb) { cb(null, file.fieldname + '-' + Date.now()) } }) var upload = multer({ storage: storage }).array('file'); upload(req,res,function(err){ logger.debug(JSON.stringify(req.body)); logger.debug(JSON.stringify(req.files)); if(err){ logger.debug("Error Occured", JSON.stringify(err)); res.json({error_code:1,err_desc:err}); return; } else{ res.json({error_code:0,err_desc:null}); } }); } 

上传文件时,返回错误

  2017-11-10T02:39:48.297Z - debug: Error Occured {"code":"ENOTFOUND","errno":"ENOTFOUND", "syscall":"getaddrinfo","hostname":"http://www.port****es.in/","host":"http://www.port****es.in/", "port":22,"level":"client-socket","storageErrors":[]} 

22号港也在我的域中开放。 等待的build议,感谢提前。

对于你的错误,有两种可能性

  1. 22号端口没有打开状态,也无法访问该文件夹
  2. 检查域中的文件夹目录

使用multer-sftp将file upload到远程服务器是一种简单而灵活的方式。 我们也可以通过节点js中的scp,ssh技术将file upload到远程服务器。

工作代码:

 exports.newFileUpload = function(req , res , next){ var storage = sftpStorage({ sftp: { host: 'hostname', port: 22, username: 'username', password: 'password' }, destination: function (req, file, cb) { cb(null, 'images/') }, filename: function (req, file, cb) { cb(null, file.fieldname + '-' + Date.now()) } }) var upload = multer({ storage: storage }).array('file'); upload(req,res,function(err){ logger.debug(JSON.stringify(req.body)); logger.debug(JSON.stringify(req.files)); if(err){ logger.debug("Error Occured", JSON.stringify(err)); res.json({error_code:1,err_desc:err}); } else{ logger.debug("Files uploaded successfully"); res.json({error_code:0,err_desc:null}); } }); } 

注意:使用“multer-sftp”端口时,在远程服务器中没有22。

希望能帮助到你 !