为 fs-write-stream-atomic 添加可选的 fsync 支持
作者: Adi1231234创建于 2025年11月7日更新于 2026年9月6日
标签Stale
特性请求
在 QQparcel/fs-write-stream-atomic 添加可选的 “ fsync” 支持,以便在使用带流的原子书写时提高耐久性。
□ 预期行为
当流完成撰写临时文件时,库应该能够:
- " 同步 " 临时文件,以确保数据在磁盘上。
- 将临时文件的名称改为目标路径。
- 可选的 " fsync " 母目录可坚持名称/元数据。
这可以通过选项选择,例如:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? 写 StreamAtomic( 最高, { fsync: 真, fsyncDir: 真) ;
□ 当前的行为
图书馆向临时文件发文,然后将其重命名为目标,但不在临时文件或父目录上调用 " fsync " 。 在`重命名'之后发生相撞或断电后,文件内容可能无法完全持久。
□ 可能的解决方案
* 添加选项以启用“同步”:
* 关闭时:在`重名'前临时档案中拨打`fdatasync'/`fsync'。
* 在`重命名 ' 之后:尝试打开和`同步 ' 母目录(最有效;跳过不支持它的平台/文件系统)。
*对性能保持默认行为不变,但允许用户选择每个用例.
□ 内容
我们利用软件包通过流复制/写入大文件,需要更强有力的保证,防止突然相撞的数据丢失. 原子 " 重命名 " 保护文件名开关,但如果没有 " 同步 " ,我们仍然可以在功率故障后用一个短线文件或非短线文件。
□ 实例
拟议用途:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么?
从“@parcel/fs-write-stream-atomic”导入“Stream-Atomic”;
cons ws = 写出 StreamAtomic ('/ path/ to/ file', { fsync: true, fsyncDir: true };
// 管 (.). ("完成",.这对我很有帮助。 如果这个提议合理的话, 我很乐意开启一个执行它的公关.
内容来源: parcel-bundler/parcel