2017-05-06 7 views
0

私は、リモートサーバー上のファイルを送信してみてください。リモートサーバー上の特定のフォルダmulter-ftpにファイルをアップロードするにはどうすればよいですか?このコードを使用して

var upload = multer({ 
    storage: new ftpStorage({ 
     basepath: '/uploads/', 

     ftp: { 
      host: 'samplehost.com', 
      secure: false, // enables FTPS/FTP with TLS 
      user: 'login', 
      password: 'password' 
     } 
    }) 
}); 

が、常にではないのアップロードには、ルートディレクトリにファイルを保存し、どのように私はこの問題を解決することができますか?

答えて

0

multer-ftpの代わりに、multer-sftpを使用してファイルをリモートサーバにアップロードするのは、簡単で柔軟な方法です。また、ノードjs内のscp、ssh技法を使用してファイルをリモートサーバにアップロードすることもできます。

ワーキングコード:

exports.newFileUpload = function(req , res , next){ 

    // sftp settings  
    var storage = sftpStorage({ 
     sftp: { 
     host: 'hostname', 
     port: 22, 
     username: 'username', 
     password: 'password' 

     }, 
     destination: function (req, file, cb) { 
     cb(null, 'images/') // designation folder in host 
     }, 
     filename: function (req, file, cb) { 
     // file name settings 
     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、リモートサーバーで開かれていません。

公式ドキュメントmulter-sftp

それが役に立てば幸い!

+0

外部リソースへのリンクは貴重な場合がありますが、回答の本質をあなたの投稿に直接記載してください。そうしてください。 @MaciejJureczko。 –

+0

。あなたの提案に感謝、私は答えを更新しました – Jackie

関連する問題