我的服务器10gb+上有一个大型的压缩文件,我无法将压缩文件保存在本地机器上。我希望(通过FTP)将压缩的内容流到我的服务器上,逐块解压缩内容,并处理每个块/行。
基本上,我的挑战和问题是:我可以使用压缩文件的每个流块并独立解压缩它们吗?还是我要下载整个文件?是否有处理此问题的节点库?
发布于 2016-05-14 00:36:37
如果您可以将压缩文件更改为gzipped文件,则是可能的。据我所知,用Zip文件是不可能的。如前所述:Java:通过HTTP提供via文件的流内容
因此,我决定研究如何使用GZipped文件来解决这个问题,使用GZip似乎相当容易。
发布于 2016-05-14 10:49:03
如果它只是一个没有zip字典的压缩文件,也许您可以尝试一下
fs.createReadStream(`${craneProjectDir}/tree`)
.pipe(zlib.createUnzip())
.pipe(fs.createWriteStream('myfile'))如果它有一个字典,这对于压缩文件来说是正常的,那么您可以尝试这样做
https://github.com/antelle/node-stream-zip
因为这个例子很大,所以我邀请您检查自述文件
要通过FTP读写文件,我请您使用优秀的mscdex库
https://github.com/mscdex/node-ftp
var Client = require('ftp');
var fs = require('fs');
var c = new Client();
c.on('ready', function() {
c.get('foo.txt', function(err, stream) {
if (err) throw err;
stream.once('close', function() { c.end(); });
stream.pipe(fs.createWriteStream('foo.local-copy.txt'));
});
});
// connect to localhost:21 as anonymous
c.connect();所以这应该是可行的。
https://stackoverflow.com/questions/37174089
复制相似问题