节点通过FTP流式传输和处理压缩内容
Node Stream and Process Zipped Contents via FTP
我的服务器上有一个10gb的大压缩文件+我无法在本地机器上保存压缩文件。我想将压缩后的内容流式传输到我的服务器上(通过FTP),逐块解压缩内容,并处理每个块/行。
基本上,我的挑战和问题是:我可以使用压缩文件的每个流块并独立解压缩它们吗?还是我必须下载整个文件?是否有节点库处理此问题?
如果您可以将压缩文件更改为gzip文件,这是可能的。据我所知,使用Zip文件是不可能的。如前所述:Java:通过HTTP 流式传输Zipfile的内容
因此,我决定研究使用GZipped文件,使用GZip似乎相当容易。
- 如何在node.js中逐块gunzip
- http://nickfishman.com/post/49533681471/nodejs-http-requests-with-gzip-deflate-compression
- http://codewinds.com/blog/2013-08-20-nodejs-transform-streams.html
如果这只是一个没有zip字典的压缩文件,也许你可以试试这个
fs.createReadStream(`${craneProjectDir}/tree`)
.pipe(zlib.createUnzip())
.pipe(fs.createWriteStream('myfile'))
https://nodejs.org/api/zlib.html#zlib_zlib_createunzip_options
如果它有一个字典,这是压缩文件的常规字典,你可以试试这个
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();
所以,是的,这应该是可行的。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- keyup事件处理程序更改焦点不适用于快速键入
- 使用压缩的JavaScript文件(不是运行时压缩)
- 如何使用jquery处理php循环通过元素
- angular.js没有'无法在PhoneGap中处理视图标记
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 提示使用服务器端事件处理程序激活JavaScript
- javascript:如何在antlr生成的Lexer中进行错误处理
- 压缩phonegap中ios的图像插件
- 如何编写一个具有公共标头的批处理
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 如何处理node.js节点mongodb中的连接和查询队列
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 如何处理10页以上的静态页眉/页脚
- 将事件处理程序绑定到任何可能的事件
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- python到“;流“;字典处理
- 节点通过FTP流式传输和处理压缩内容
- 在Django中使用JS压缩器处理浏览器条件JS
- 不压缩javascript和CSS对客户端处理有什么影响