2017-11-10 18 views
10

ノードjsでmulter-sftpを使用してファイルをリモートサーバーにアップロードしようとしています。私は公式の文書npm multer-sftpに従っているからです。以前は、リモートサーバーではなくAmazon S3にファイルをアップロードしていました。今私はリモートサーバーにファイルをアップロードしたいと思います。エクスプレスノード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":[]} 

もポートを返し、ファイルのアップロード中。提案を待っています。 ありがとうございました。あなたのエラーのため、ノー22二つの可能性

  1. があるポートはまた、ファイルのアップロードドメインに

をお使いのフォルダのディレクトリを確認し、そのフォルダ

  • にアクセスすることが開いた状態ではないではありません

  • +2

    'host'は' http:// 'を持つべきではありません。正しい方法: 'ホスト: 'www.port ***** es.in'、' –

    +0

    @MukeshSharma私もそれを試しましたが、同じエラー – Keerthivasan

    答えて

    7

    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、リモートサーバーで開かれていません。

    希望すると助かります!

    関連する問題