工作原理
AinnoBox 把文件处理工具完整地搬到了浏览器里。这一页解释为什么这能行、用了哪些技术,以及你如何自己验证文件没有离开你的设备。
一、传统的"上传—处理—下载"模式
大多数在线 PDF / 图片工具是这样工作的:
- 你的浏览器把文件 multipart 上传到他们的服务器;
- 服务端用本地工具(Ghostscript、ImageMagick、Pillow 等)处理;
- 生成的结果文件存到他们的磁盘(通常临时存几小时或几天);
- 你下载结果。
这一切都需要你信任运营方:相信他们没有读取、复制、训练模型或泄露你的文件,相信他们的备份策略足够安全,相信内部员工不会被攻陷。对随手处理一张表情包来说没什么大不了,但你的护照扫描、医疗报告、签好的合同也走这条路就不太合适了。
二、AinnoBox 的方式:浏览器内运行
现代浏览器已经强大到可以本地完成绝大多数文件处理任务:
- WebAssembly (WASM):把成熟的 C/C++/Rust 库(图片编解码器、PDF 解析器)编译成在浏览器沙箱内以接近原生速度运行的字节码。
- Web Workers:在主线程之外的独立线程上跑重活,UI 不会卡顿。
- Canvas API:提供 JPEG/PNG/WebP/AVIF 编解码、几何变换(旋转、翻转、缩放)。
- File API:让网页读取你拖入的本地文件——但只读、用完即丢。
工具完整地以静态资源形式(HTML、JS、WASM)从 Cloudflare 全球 CDN 边缘节点送到你的浏览器。一旦加载完毕,所有处理都在你设备的内存里发生。
三、我们用了哪些库
| 场景 | 库 | 类型 |
|---|---|---|
| PDF 编辑(合并 / 拆分 / 旋转) | pdf-lib | JavaScript |
| PDF 渲染(PDF→图片) | pdf.js | JavaScript + WASM |
| 图片压缩(高级编解码) | Squoosh WASM codecs | WASM (C++/Rust) |
| 图片几何(裁剪 / 旋转 / 翻转) | Canvas API | 浏览器内置 |
| HEIC 解码 | libheif-js | WASM (C) |
| 二维码生成 | qrcode | JavaScript |
所有依赖都是开源、被广泛使用、代码可以审计。我们没有自研加密 / 编码算法。
四、内容安全策略 (CSP)
我们部署了严格的 CSP 头部限制脚本来源和数据出口。这是防御 XSS 和数据外泄的最后一道闸门:
script-src只允许:'self','wasm-unsafe-eval'(执行 WASM 必需),googlesyndication.com(广告).connect-src只允许:'self', Plausible Analytics, AdSense.object-src 'none'frame-ancestors 'none'(不能被嵌入到 iframe 里)upgrade-insecure-requests
完整 CSP 由 Cloudflare 边缘节点下发——你可以用浏览器开发者工具 → Network → 查看响应头自行核对。
五、自己验证文件不被上传
不需要相信我们——你可以自己验证:
- 抓包检查:打开浏览器开发者工具(F12 / Cmd+Option+I)→ Network 选项卡,过滤 XHR/Fetch。运行任何工具——你不会看到任何文件内容被上传。
- 断网测试:页面加载完成后开飞行模式或断网。工具仍能正常使用——这是因为整个处理管道都在本地。
- 查看源码:右键 → 查看源代码 → JS bundle 是 minified 的,但你能看到所有外部域名都在 CSP 白名单里——没有隐藏的服务器端点。
- 检查 CSP:在 DevTools → Network → 选任意一个 HTML 请求 → Response Headers,找 Content-Security-Policy。
六、什么会上传?
为了完整透明:以下信息会从你的浏览器发出(这是任何网站都会发生的),但不包含你的文件内容:
- 初始 HTML / JS / WASM 资源请求(来自 Cloudflare CDN)
- Plausible 匿名访问统计(页面 URL、引荐来源、国家级别国家、浏览器系列)
- Google AdSense 广告请求与曝光统计(依据你对 cookie 的同意状态)
细节见 隐私政策。
七、为什么免费?
运营成本主要是域名、CDN 流量、开发人力。我们通过 Google AdSense 在站点上展示广告来覆盖这些成本——这就是为什么不需要付费墙、不需要登录、不需要把你的文件当作训练数据。