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
それが役に立てば幸い!
外部リソースへのリンクは貴重な場合がありますが、回答の本質をあなたの投稿に直接記載してください。そうしてください。 @MaciejJureczko。 –
。あなたの提案に感謝、私は答えを更新しました – Jackie