2017-11-10 5 views
10

노드 js에서 multer-sftp를 사용하여 원격 서버에 파일을 업로드하려고합니다. 공식 문서 인 npm multer-sftp을 따르고 있습니다. 이전에 원격 서버가 아닌 Amazon S3에 파일을 업로드했습니다. 이제 원격 서버에 파일을 업로드하고 싶습니다.express 노드 js에서 multer sftp를 사용하여 원격 서버에 파일을 업로드 하시겠습니까?

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

더 (22)는 내 도메인에서 열려 있지 않은 오류를

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

또한 포트를 반환 파일을 업로드하는 동안. 제안을 기다리는 중 미리 감사드립니다.

귀하의 오류에 대한
+2

'host'는 'http : //'가 없어야합니다. 올바른 방법 :'host : 'www.port ***** es.in', ' –

+0

@MukeshSharma 나는 또한 시도했으나 같은 오류 – Keerthivasan

답변

7

, 두 가지 가능성

  1. 포트에는 22
  2. 도메인에 폴더 디렉토리를 확인 해당 폴더에 액세스 할 수도 할 수없는 금지 상태입니다있다

파일 업로드 multer-sftp을 사용하여 원격 서버에 쉽고 유연한 방법입니다. 또한 노드 js에서 scp, ssh 기술을 사용하여 원격 서버에 파일을 업로드 할 수 있습니다.

작업 코드 :

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)는 원격 서버에서 열려 있지 않습니다.

희망이 있습니다.

관련 문제