2017-11-10 71 views
10

Próbuję przesłać pliki do zdalnego serwera za pomocą multer-sftp w węźle js. ponieważ śledzę oficjalne dokumenty npm multer-sftp. Wcześniej przesyłałem pliki do Amazon S3 zamiast do zdalnego serwera. teraz chcę przesłać pliki na zdalny serwer.przesłać pliki na serwer zdalny za pomocą mftter sftp w Express Node js?

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}); 
      } 
     }); 
} 

Podczas przesyłania pliku, wracając

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":[]} 

a także portu błędu nr 22 jest otwarta w mojej domenie. Oczekując na sugestie, Dzięki z góry.

+2

'host' nie powinien mieć' http: // '. Poprawny sposób: 'host: 'www.port ***** es.in',' –

+0

@MukeshSharma Próbowałem tego również, ale ten sam błąd – Keerthivasan

Odpowiedz

7

Dla swój błąd, istnieją dwie możliwości

  1. portu nr 22 nie jest otwarty stan, również nie jest w stanie uzyskać dostęp do tego folderu
  2. sprawdzić swój katalog, folder, w domenie

Przesyłanie plików do zdalnego serwera przy użyciu multer-sftp jest łatwy i elastyczny sposób. również możemy przesłać pliki do zdalnego serwera za pomocą scp, techniki ssh w węźle js.

Kodeks pracy:

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}); 
      } 
     }); 
} 

Uwaga: W przypadku korzystania z portu 'multer-sftp' nr 22 jest otwarty na zdalnym serwerze.

Mam nadzieję, że pomoże!