nodejs ftp 下载目录
时间: 2023-08-05 16:04:36 浏览: 221
你可以使用 `ftp` 模块来在 Node.js 中下载 FTP 目录。下面是一个简单的代码示例:
```javascript
const fs = require('fs');
const ftp = require('ftp');
const downloadDirectory = (ftpClient, remoteDirectory, localDirectory) => {
ftpClient.list(remoteDirectory, (err, files) => {
if (err) {
console.error(err);
return;
}
files.forEach((file) => {
const localPath = `${localDirectory}/${file.name}`;
const remotePath = `${remoteDirectory}/${file.name}`;
if (file.type === 'd') {
// 如果是目录,则递归地下载目录
fs.mkdirSync(localPath, { recursive: true });
downloadDirectory(ftpClient, remotePath, localPath);
} else {
// 如果是文件,则下载文件
ftpClient.get(remotePath, (err, stream) => {
if (err) {
console.error(err);
return;
}
stream.pipe(fs.createWriteStream(localPath));
console.log(`Downloaded ${localPath}`);
});
}
});
});
};
// 创建 FTP 客户端
const ftpClient = new ftp();
// 连接到 FTP 服务器
ftpClient.connect({
host: 'ftp.example.com',
user: 'username',
password: 'password'
});
// 在连接成功后执行下载操作
ftpClient.on('ready', () => {
const remoteDirectory = '/path/to/remote/directory';
const localDirectory = '/path/to/local/directory';
downloadDirectory(ftpClient, remoteDirectory, localDirectory);
// 下载完成后关闭 FTP 连接
ftpClient.end();
});
```
你需要替换示例中的 `host`、`user`、`password`、`remoteDirectory` 和 `localDirectory` 为你实际的 FTP 服务器信息和目录路径。这样,运行该脚本后,FTP 目录将被递归地下载到本地目录。
阅读全文