tar
にディレクトリを設定し、これをHTTP PUT
経由でリモートエンドポイントに送信する必要があります。nodejs/fs:タールをメモリバッファに書き込む
もちろん、タールを作成してディスクに保存してから、もう一度それを読んで送信することができます。
しかし、私はむしろタールを作成してから、それをいくつかのバッファにパイプしてすぐに送信したいと思います。私はこれを達成することができませんでした。これまで
コード:中
var tar = require('tar');
var fs = require("fs");
var path = "/home/me/uploaddir";
function getTar(path, cb) {
var buf = new Buffer('');
var wbuf = fs.createWriteStream(buf);
wbuf.on("finish", function() {
cb(buf);
});
tar.c({file:""},[path]).
pipe(wbuf);
}
getTar(path, function(tar) {
//send the tar over http
});
このコードの結果:私はまた、バッファ、無喜びとして配列を使用してみました
fs.js:575
binding.open(pathModule._makeLong(path),
^
TypeError: path must be a string
at TypeError (native)
at Object.fs.open (fs.js:575:11)
。
uh?長さ0のバッファを 'fs.createWriteStream'に渡しているようですが、最終的にはエラー –
になります。私はこれを認識していますが、最初に私が知らないディレクトリのタールを作成しているのでサイズ、バッファをどのように割り当てる必要がありますか? – faboolous