You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS Safari中OPFS调用createSyncAccessHandle报'invalid platform file handle'错误

问题分析与解决方案

核心原因

你遇到的invalid platform file handle错误,本质是Safari iOS(包括15.2+版本)并不支持createSyncAccessHandle()这个API。虽然Safari从15.2开始支持OPFS,但仅实现了File System Access API的子集,同步访问句柄(SyncAccessHandle)属于未覆盖的功能,只有桌面端Chrome/Firefox等浏览器完整支持。

替代方案:使用异步写入API

把同步访问的逻辑替换为Safari支持的createWritable()异步写入方法,完全可以满足你保存base64文本的需求,同样能避免内存溢出问题。修改后的Worker代码如下:

const root = await navigator.storage.getDirectory();
const saveHandle = await root.getFileHandle(input.fileName, { create: true });
// 替换同步访问句柄为异步可写流
const writableStream = await saveHandle.createWritable();
// 写入base64内容
await writableStream.write(input.base64Text);
// 关闭流完成写入
await writableStream.close();

补充说明

  1. 异步写入的性能完全能适配你的场景:数据会直接流式写入OPFS磁盘存储,不会在RAM中堆积,同样解决内存崩溃问题。
  2. 验证兼容性:createWritable()是Safari iOS 15.2+明确支持的OPFS API,完全覆盖你的目标版本15.7.3。
  3. 后续读取:如果需要读取文件,同样使用异步API,比如saveHandle.getFile()获取File对象后再读取内容。

内容的提问来源于stack exchange,提问作者mshaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:25:32