我在Mac上的node-webkit中的http.get中保存了一些数据。我注意到目标文件大小在Finder中保持0字节,直到文件关闭。
我可以设置一个ReadableStream并从我刚刚写入的文件中读取并且数据就在那里,所以我猜测它在内存中缓存了什么......这很糟糕,因为我正在下载大文件。
如何强制它定期刷新文件?
以下是我正在尝试的内容:
var file_options = { flags: 'w', encoding: null, mode: 0666 };
var file = fs.createWriteStream(dest, file_options);
var get_options = {
host: parsedUrl.host || parsedUrl.hostname,
port: parsedUrl.port,
path: parsedUrl.pathname + search,
headers: {Range: "bytes="+offset+"-"+limit},
agent: false
};
var request = http.get(get_options, function (response) {
response.on('data', function (chunk) {
var ready = file.write(chunk, encoding='binary');
if (ready === false) {
this.pause();
file.once('drain', this.resume.bind(this));
console.log('flushed');
}
});
});
它似乎只是备份并需要暂时暂停...所以为什么我没有看到文件大小或最后修改过的变化? 如果我在关闭应用程序之前关闭应用程序,然后关闭该流程,那么它会在此时更新,因此我想知道它是否发生在Mac内核本身而不是在内核中发生的事情。节点webkit的。