`title: OPFS 原子写与临时文件替换策略``categories: Web 开发/前端/数据管理``keywords: OPFS,原子写,临时文件,替换,可靠性``description: 通过先写入临时文件并在成功后替换引用的策略,实现 OPFS 的原子性效果,避免中途失败导致的文件损坏。`写入策略async function atomicWrite(name, bytes) {
const root = await navigator.storage.getDirectory();
const tmp = await root.getFileHandle(name + '.tmp', { create: true });
const w = await tmp.createWritable();
await w.write(bytes);
await w.close();
await root.removeEntry(name).catch(() => {});
const final = await root.getFileHandle(name, { create: true });
const fw = await final.createWritable();
const file = await tmp.getFile();
await fw.write(await file.arrayBuffer());
await fw.close();
await root.removeEntry(name + '.tmp').catch(() => {});
}

发表评论 取消回复