node 使用 ssh2-sftp-client 实现 FTP 的文件上传和下载功能
# 第一步
安装 ssh2-sftp-client
依赖包:
npm install ssh2-sftp-client
// 或者
yarn add ssh2-sftp-client
1
2
3
2
3
# 第二步
代码实现:
let Client = require('ssh2-sftp-client');
function put(localPath, romotePath) {
let sftp = new Client();
sftp.connect({
host: 'xx.xx.xx.xx', // 服务器 IP
port: '22',
username: 'xxxx',
password: 'xxxxxx'
}).then(() => {
// 上传文件
// return sftp.fastPut(localPath, romotePath);
// 下载文件
return sftp.get(localPath, romotePath);
}).then((data) => {
// console.log(localPath + "上传完成");
console.log(localPath + "下载完成");
sftp.end();
}).catch((err) => {
console.log(err, 'catch error');
});
}
let srcPath = 'D:\\MyDisk\\my-project\\node\\file\\test-copy.txt',
localPath = path.join(__dirname, 'test.txt'),
romotePath = '/home/xx/xx/webapps/xx/test.txt';
// 上传文件
// 第一个参数是需要上传的文件的本地路径;第二个参数是服务器存放的地址
// put(localPath, romotePath);
// 下载文件
// 第一个参数是需要下载的文件在服务器存放的地址;第二个参数是本地存放的路径
put(romotePath, srcPath);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 参考
官网文档地址:ssh2-sftp-client (opens new window)
注意
在上传文件的时候,使用的 fastPut 方法,使用 put 方法上传文件报错。
上次更新: 2024/04/07, 16:22:38
- 01
- Node与GLIBC_2.27不兼容解决方案08-19
- 02
- Git清空本地文件跟踪缓存08-13