2014-02-12 31 views
1

我想在節點中創建一個tar歸檔文件。該canonical tar archiving example是基於文件流:節點:將字符串作爲文件添加到tar歸檔文件中(無臨時文件)

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

我的數據實際上是在內存中作爲一個字符串,我想寫信給存檔,而無需創建一個臨時文件之間。

有什麼辦法可以做到這一點,例如:也許從字符串中創建一個fstream?

+0

如何從字符串創建流:http://stackoverflow.com/questions/12755997/how-to-create-streams-from-string-in-node-js –

回答

1

tar-async模塊處理這個很簡單,無需造假流:

var uploadArchive = new Tar({output: fs.createWriteStream('archive.tar')}); 
uploadArchive.append('somefile.txt', 'someString', function() { 
    tape.close(); 
}); 
+1

那麼如何一個gzip tar歸檔? – superhero

3

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() 

tar-stream也可以使用流作爲源文件內容。

相關問題