开源 · 自部署 · 跨设备暂存
shotsync:截图和文字,换台设备接着用。
shotsync 是一个图片与文字暂存工具,可以直接使用在线版,也可以部署在自己的 Cloudflare 账号中。在电脑上传截图,稍后从手机保存;在手机发一段文字,回到电脑复制。两台设备无需同时在线,也无需连接同一个 Wi-Fi。
演示站只有公开样例,不提供访客上传。自己部署是默认方式,无需注册账号或配置 Supabase;公共账号服务是另一个独立入口。
自己部署,还是直接使用服务?
自己部署:内容存放在你自己的 Cloudflare,输入一个访问令牌即可使用,无需邮箱、账号数据库或 Supabase。
公共托管服务:在运营方提供的地址注册登录,文件按账号隔离,适用运营方的限额和保留时间。打开在线版,邮箱+密码注册,无需邮件验证,请保存恢复码。当前限 100 个账号试用,新账号默认保留 7 天;查看可用状态与说明。两种方式的账号、访问令牌和文件不互通。
手机使用在线版,可按手机快捷入口设置添加到主屏幕,以后点图标就能进入相册。
适合什么场景?
- 工作时截一张图,过一会儿在另一台电脑或手机取走。
- 把照片、链接或一段纯文字暂存在自己的池子,代替给自己发消息。
- 给别人发送单个内容的临时分享链接,不开放整个图片池。
它需要互联网连接,适合个人或可信的小圈子。它不是多人网盘、长期备份服务,也不适合视频和任意类型的大文件传输。
手机和电脑怎么用?
主界面是浏览器中的 PWA,无需安装原生应用。手机和电脑打开同一个部署地址,输入相同的访问 token,就可以访问同一份图片和文字。当前界面使用中文。
- 在电脑打开自己的 shotsync,输入部署时设置的 token。
- 点击「+ 图片」上传截图,或点击「✎ 文字」发送文字片段。
- 在手机浏览器打开相同地址并输入 token。图片池约每 20 秒自动刷新一次。
- 点开内容,选择「保存」或「复制」。也可以从 Safari 分享菜单添加到主屏幕。
可选的 macOS 菜单栏客户端支持自动上传新截图,需要 macOS 13+ 和本地构建。iPhone 上可按 iOS 快捷指令教程从其他 App 分享图片到池子。
如何自部署 shotsync?
默认自部署后端只有一个 Cloudflare Worker 和一个 R2 存储桶,不需要 D1、Supabase 或邮件服务。你需要自己的 Cloudflare 账号、启用 R2,以及 Node.js 22+ 环境。
- 从 GitHub 仓库克隆源码,安装依赖,使用 Wrangler 登录自己的 Cloudflare 账号。
- 创建 R2 存储桶,使其名称与项目的
wrangler.toml配置一致。 - 生成足够长的随机 token,通过 Wrangler secret 设置
AUTH_TOKEN,然后部署 Worker。 - 在每台设备打开部署地址,输入同一个 token。
- 在 R2 的 Object lifecycle rules 中设置创建 30 天后删除对象。
30 天删除需要你配置 R2 生命周期规则,Worker 本身不会自动建立这条规则。重要文件请保留其他副本。完整命令及配置以 仓库部署说明为准。
代码采用 MIT 许可证。运行费用由你的 Cloudflare 用量和当前套餐决定,免费额度并不代表无限使用;部署前查看 Workers 和 R2 官方计费说明。
数据、访问权限与限制
- 数据位置:自部署后,内容存放在你自己的 Cloudflare R2 中,由你的 Worker 提供访问。它仍然是云存储,不是仅在设备之间传输,也没有应用层端到端加密。
- 共享 token:持有 token 的人可以查看、上传和删除整个池子的内容。没有独立用户、分级权限或团队管理。
- 本机凭证:网页将 token 保存在当前浏览器的 localStorage 中。公共设备用完应退出登录。
- 公开分享:单项分享链接有效期为 7 天,任何拿到链接的人都能查看该项。内容提前删除后,链接也会失效。
- 大小与格式:单项主文件上限为 25 MiB。支持图片和纯文字;浏览器上传图片时会转换为 JPEG 并生成缩略图,不用于保留原始图片格式。
- 保留时间:按部署说明配置后,R2 按 30 天生命周期规则清理对象。shotsync 用于暂存,不用于归档。
常见问题
发送设备必须一直开着吗?
不用。上传完成后,另一台设备可以稍后通过互联网取回,直到内容被手动删除或被 R2 生命周期规则清理。
能直接用公开演示同步自己的截图吗?
不能。演示是只读样例池;自己的数据应放在自己部署的实例中。
自部署需要注册账号或申请 Supabase 密钥吗?
不需要。默认部署使用你设置的访问 token;它不是 Cloudflare API Token。账号体系只用于独立的多用户托管服务。
token 泄露了怎么办?
在自己的 Worker 上更新 AUTH_TOKEN,并在各设备重新输入。更新 token 也会使此前签发的分享链接失效。
为什么上传后另一台设备看不到?
先确认两台设备打开的是同一个部署地址,token 一致,上传已成功。等待一次自动刷新;如果仍失败,检查浏览器请求及 Worker 日志。仅打开网页不能完成设备间同步,内容必须先上传成功。
What is shotsync?
shotsync is an open-source, self-hosted image and text pool built with Cloudflare Workers and R2. Upload a screenshot or text snippet on one device and retrieve it later on another. The browser/PWA client uses one shared access token; optional macOS and iOS Shortcut integrations are available. Configure R2 lifecycle rules for 30-day retention. The default self-hosted mode is a personal transit pool. You can also use the hosted service with an individual account, without deploying; its quotas and retention differ.