节点:将字符串作为文件添加到 tar 存档中(没有临时文件)

mik*_*ana 3 javascript tar node.js

我想在节点中制作一个 tar 存档。规范的 tar 归档示例基于文件流:

fstream
  .Reader({path: 'src', type: "Directory"})
  .pipe(tar.Pack())
  .pipe(zlib.createGzip())
  .pipe(fstream.Writer("output.tar.gz"));
Run Code Online (Sandbox Code Playgroud)

我的数据实际上作为字符串存储在内存中,我想将其写入存档,而不必在中间创建临时文件。

有什么方法可以做到这一点,例如可以用字符串创建 fstream 吗?

B T*_*B T 5

tar-stream模块也可以做到这一点:

var tar = require('tar-stream')    

var content = "whatever string you have"
var pack = tar.pack()
pack.entry({name: 'src', type: 'directory'})
pack.entry({name: 'src/someFile.txt'}, content) // file
pack.finalize()
Run Code Online (Sandbox Code Playgroud)

tar-stream还可以使用流作为文件内容的源。