概述通过读取响应流并逐块写入 OPFS,可降低内存占用并提高稳定性。流式保存async function saveResponseToOPFS(url, path) {

const res = await fetch(url);

if (!res.body) { const buf = await res.arrayBuffer(); return writeAll(path, new Uint8Array(buf)); }

const root = await navigator.storage.getDirectory();

const segments = path.split('/').filter(Boolean);

let dir = root; for (let i=0;i<segments.length-1;i++) dir = await dir.getDirectoryHandle(segments[i], { create: true });

const fh = await dir.getFileHandle(segments[segments.length-1], { create: true });

const ws = await fh.createWritable();

const reader = res.body.getReader();

while (true) {

const { value, done } = await reader.read();

if (done) break;

await ws.write(value);

}

await ws.close();

}

async function writeAll(path, bytes) {

const root = await navigator.storage.getDirectory();

const segments = path.split('/').filter(Boolean);

let dir = root; for (let i=0;i<segments.length-1;i++) dir = await dir.getDirectoryHandle(segments[i], { create: true });

const fh = await dir.getFileHandle(segments[segments.length-1], { create: true });

const ws = await fh.createWritable(); await ws.write(bytes); await ws.close();

}

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部