SFTP的NodeJS得到zip文件
试图让一组zip文件关闭使用SFTP服务器。下面是代码试图让一个单一的文件简化的片段:
var fs = require('fs');
let Client = require('ssh2-sftp-client');
let sftp = new Client();
sftp.connect({
host: 'ftp.domain',
port: '22',
username: 'username',
password: 'password'
}).then(() => {
sftp.get("fileName.zip").then((data) => {
data.pipe(fs.createWriteStream('download/fileName.zip'));
}).catch((err) => {
console.log(err, 'get error');
});
}).catch((err) => {
console.log(err, 'connect error');
});
我得到下载的文件,但同时服务器上的文件大约是1.4 MB,下载一个2.5 MB,不能与任何压缩实用程序打开。我怀疑这是一个编码的问题,但所有到目前为止,我已经找到了答案,说不集编码的二进制流。
回答如下:有一个关于这方面的问题库的GitHub的页面上悬而未决的问题 - > Corrupt file on the SFTP
你可以尝试实际的编码设置为null:
sftp.get("fileName.zip", null, null).then(...)