在 Express Node js 中使用 multer sftp 将文件上传到远程服务器?
upload files to remote server using multer sftp in express Node js?
我正在尝试使用节点 js 中的 multer-sftp 将文件上传到远程服务器。因为我正在关注官方文档 npm multer-sftp。以前我将文件上传到 Amazon S3 而不是远程服务器。现在我想上传文件到远程服务器。
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});
}
});
}
上传文件时,返回错误
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 号端口在我的域中是开放的。等待建议,
提前致谢。
对于你的错误,有两种可能
- 端口号 22 未打开状态,也无法访问该文件夹
- 检查域中的文件夹目录
使用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 在远程服务器中打开。
希望对您有所帮助!
我正在尝试使用节点 js 中的 multer-sftp 将文件上传到远程服务器。因为我正在关注官方文档 npm multer-sftp。以前我将文件上传到 Amazon S3 而不是远程服务器。现在我想上传文件到远程服务器。
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});
}
});
}
上传文件时,返回错误
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 号端口在我的域中是开放的。等待建议, 提前致谢。
对于你的错误,有两种可能
- 端口号 22 未打开状态,也无法访问该文件夹
- 检查域中的文件夹目录
使用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 在远程服务器中打开。
希望对您有所帮助!