ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Obsidian 安卓同步教程:用 Remotely Save 加阿里云 OSS 实现增量同步

2026/9/18 19:08:27 拓冰建站 浏览量
Obsidian 安卓同步教程:用 Remotely Save 加阿里云 OSS 实现增量同步 手机上的 Obsidian 一直是移动记录的神器但同步这个问题我折腾了不止一个周末。之前电脑上的笔记库有四千多篇内容和几百张图片手机上打开 Obsidian 却还是三五天前的版本。试过官方同步钱包和网络都不太答应也试过用 WebDAV 挂载小文件同步还行碰到图多的库直接卡成幻灯片。最后在安卓端稳定跑通的是 Remotely Save 加阿里云 S3 这套组合不用自建服务器不用订阅官方服务国内访问速度也能接受。这篇文章把我配置过程中踩过的坑、填对的参数和日常使用心得完整记录下来适合所有想在安卓手机上顺畅用 Obsidian 的朋友直接参考。1. 为什么放弃其他同步方案最终选了 Remotely Save 加阿里云 S31.1 官方同步先被排除先说 Obsidian 官方同步。它本身很稳端到端加密历史版本也能看但有两个问题在安卓上很现实第一个是价格官方同步按年付费费用对标的是知识管理重度用户如果只是想手机和电脑同步几百篇笔记这笔开销真不算小。第二个是连接国内网络环境连海外服务经常不稳定实际体验是同步一直转圈手机和电脑内容经常对不上。我不想为了同步一个笔记库去额外维护网络工具所以官方同步是最早被排除的。1.2 WebDAV 方案的坑后来想走 WebDAV。坚果云在国内支持得很不错但免费版的上传和下载流量每个月加起来只有 1GB纯文字笔记够用一旦库里有截图、PDF、附件几天就超量。超量之后同步直接限速手机会一直报错。OneDrive 在安卓端虽然也能用但 Obsidian 社区对 WebDAV 的支持在特殊字符、中文文件名上偶尔会出问题文件一多还容易超时。加上 WebDAV 同步时不是按内容哈希做增量而是把所有文件一个个拉下来判断库一大心态容易崩。1.3 Remotely Save 加对象存储为什么更合理Remotely Save 是 Obsidian 社区一个专门做同步的插件它可以直接对接 S3 协议的对象存储。S3 协议的好处是对象存储天然为海量小文件优化按文件哈希上传能跳过没变化的文件阿里云 OSS 又在这套协议上做了兼容国内节点多手机直连延迟很低。价格方面OSS 标准存储基本是每 GB 每月 0.12 元左右笔记库几个 GB 也就是一个月几毛钱流量费同样便宜。换句话说花一杯饮料钱就得到一个稳定、无需维护的同步后端。方案成本稳定性适合场景Obsidian 官方同步高订阅制海外节点不稳定预算充足且网络环境友好WebDAV / 坚果云低但有流量限制小库还行大库容易超时纯文字轻量笔记Remotely Save S3极低国内直连增量同步图文笔记、多设备、长期使用2. 动手前先理解 Remotely Save 的同步机制和 S3 三件套2.1 数据究竟是怎么流动的很多人配置失败不是因为操作多难而是没搞懂数据到底是怎么流。Remotely Save 本质上做的事情是把本地 Obsidian 库作为文件夹扫描里面的文件计算哈希后上传到远端 Bucket另一端检测到远端有变化再拉下来。它不是打包成 zip 整个传而是按文件增量处理。所以库里有几千个文件第一次同步会慢一点之后每次同步基本都在毫秒到秒级。2.2 桶、对象、钥匙分别是什么S3 协议里有几个名词必须先捋清楚。Bucket 叫存储桶相当于一个仓库对象就是存储桶里的每个文件AccessKey 是进门钥匙由 AccessKey ID 和 Secret Key 组成。阿里云的 OSS 虽然有自己的管理界面但对外提供了 S3 兼容接口Remotely Save 就是通过这个接口操作 OSS不需要额外装客户端。用生活话讲Bucket 是一个快递柜每一个文件是快递柜里的包裹AccessKey ID 是取件码账号Secret Key 是取件码。只要给插件正确的柜号和取件码它就能在柜子里存取包裹。2.3 Endpoint、Region 和地址的对应关系很多教程让人填 Endpoint 和 Region但没说清为什么。Endpoint 是接入地址类似快递柜所在的小区地址Region 是城市区域阿里云对象存储的 API 校验时会检查区域是否匹配。比如你建 Bucket 在华东1杭州Endpoint 就填https://oss-cn-hangzhou.aliyuncs.comRegion 填oss-cn-hangzhou。如果你从控制台复制了一个带桶名的地址填到 Remotely Save 里反而会重复前置桶名导致签名错误。这一点非常容易踩。2.4 为什么不用主账号 AccessKey阿里云控制台生成的主账号 AccessKey 权限太大它可以操作你名下所有 OSS 资源一旦泄露损失不可控。所以我强烈建议为同步单独创建一个 RAM 子账号只授权指定 Bucket 的读写。步骤也不复杂登录 RAM 控制台创建用户时勾选“OpenAPI 调用访问”系统会生成 AccessKey ID 和 Secret再给这个用户加一个控制指定 Bucket 的自定义策略。如果你只想快速跑起来临时用主账号的 Key 配置也行但跑通后建议立刻换成 RAM 子账号。自定义策略大概长这样把your-bucket换成你的 Bucket 名称{ Version: 1, Statement: [ { Effect: Allow, Action: oss:*, Resource: [ acs:oss:*:*:your-bucket, acs:oss:*:*:your-bucket/* ] } ] }第一次用也可以先加系统策略AliyunOSSFullAccess跑通之后再把权限收窄。3. 阿里云 OSS Bucket 创建与检查清单3.1 创建 Bucket 时的关键选项进入阿里云 OSS 控制台创建 Bucket 时要注意几个选项。区域选离自己近的公共节点比如华东1、华北2这些不要选港澳台或海外除非你就住在那边。存储类型选标准存储不要选低频访问。笔记文件会被频繁读取低频存储虽然单价低但每次访问都有读取费综合下来未必划算。读写权限选私有同步数据不需要公开读如果选了公共读你的笔记内容等于挂在公网上。服务端加密可以开启不影响 Remotely Save 使用。版本控制这块可开可不开。Remotely Save 本身没有历史版本开启 Bucket 版本控制能兜底防误删但会存储历史版本产生额外费用。我的选择是开着一年下来也就多几毛钱。3.2 Endpoint 到底去哪个页面复制创建完成后进入 Bucket 的概览页能看到一个“地域节点”例如oss-cn-hangzhou.aliyuncs.com这就是要填的 Endpoint。注意页面还会给你一个“访问域名”列表里面有带 Bucket 前缀的域名和-internal结尾的内网域名。带internal的是阿里云内网地址手机上绝不能填带 Bucket 前缀的域名也不要填到 Endpoint 字段里因为插件会在请求时自动拼上 Bucket 名。很多报错都从这里来。3.3 创建 RAM 子账号并授权的步骤控制台搜索 RAM进入访问控制后创建用户登录名随意最好叫obsidian-sync这种一眼能看懂的。访问方式勾选“OpenAPI 调用访问”创建成功后立即保存 AccessKey ID 和 Secret因为 Secret 只在创建时显示一次。然后给用户授权最快的做法是添加系统策略AliyunOSSFullAccess它允许操作所有 OSS 资源。如果只想限制在当前 Bucket就按上一节的自定义策略来写。配置完成后打开 Remotely Save 的“检查连接”按钮提示成功再继续。这个测试能直接验证你的 AccessKey、Endpoint、Region 是否匹配。3.4 先在桌面端试通不要一上来就手机建议第一次配置先在自己的电脑上完成。安装 Obsidian 桌面版装上同一个 Remotely Save 插件把参数填好后先做一次连接测试然后直接执行一次全量同步。这样云端会先存一份完整的库手机端拉取时就有明确起点排错也容易。如果直接拿手机新建空库去连远端已存在的库也能拉取但空库的配置和插件状态会和电脑端冲突处理起来更麻烦。4. 安卓端配置 Remotely Save一步步操作到首次同步4.1 安卓端插件的安装方式安卓端安装插件有两条路。第一条是打开 Obsidian 后进入设置找到社区插件关闭安全模式搜索 Remotely Save 直接安装。如果你的网络导致无法访问社区插件市场可以用第二种从插件发布页面下载 zip解压到手机存储的 Obsidian 库目录下.obsidian/plugins/remotely-save/里面。由于 Android 的 data 目录在部分手机上被限制用文件管理器访问库目录比较麻烦我更推荐先在电脑上把插件安装好然后让 Remotely Save 把整个库同步到云端手机拉取下来就能自动识别插件。这个技巧非常省事。4.2 参数填写顺序和注意事项在桌面端配置时Remote 服务类型选择 S3参数按这个顺序填Bucket 名称只填 Bucket 名不带后缀例如my-notes-bucket。Endpoint填接入地址例如https://oss-cn-hangzhou.aliyuncs.com。Region填区域 ID例如oss-cn-hangzhou。AccessKey ID 和 Secret Key填 RAM 用户的密钥不要有多余空格。远端基础目录Prefix如果只有一个库留空即可一个 Bucket 想放多个库时填obsidian/这种前缀插件会把远端基础目录当作同步根目录。填完点击“检查连接”插件会请求 OSS 的一个测试对象这一步能验证密钥、Endpoint、Region 是否都正确。如果报错先看本文最后一节的排查表。4.3 第一次同步到底要多久连接通过后在桌面端点击同步按钮日志会列出上传了多少文件。第一次同步把所有数据送到远端时间取决于文件数量和网络一般几分钟到十几分钟。桌面端日志滚动完成说明远端已经有了一份和本地一致的库。然后安卓手机打开 Obsidian安装同一个插件填入相同的参数点击同步手机会开始拉取远端全部对象到本地。首次同步速度慢是正常的尤其是几千个 Markdown 文件加图片耐心等它跑完。4.4 移动端界面上几个关键按钮安卓端装好后有几个地方需要明确。同步按钮是手动触发双向同步日志界面能看到每次同步的明细比如上传了 3 个文件下载了 10 个文件。设置页能看到最近同步时间。如果打开 App 自动同步失败先看左下角连接状态是不是一把锁锁掉了说明配置没保存成功或者密钥写错。5. 安卓端日常使用的性能优化与冲突处置5.1 同步频率怎么设置才不费电不费流量Remotely Save 默认会在应用启动时同步也支持定时同步。我的建议是手机端把自动同步间隔设成一小时一次或者只在打开 App 时手动同步。笔记场景大多数时候是电脑端编辑手机上主要是查阅和快速记录不需要后台高频轮询。如果你经常在手机上记录后立刻到电脑查看可以设成每 5 分钟自动同步一次但注意移动数据流量。插件每次同步会根据文件哈希判断变更并不是全量拉取实际流量消耗很小。5.2 图片附件多时移动端怎么保持流畅很多人的库不只是 Markdown还有截图、PDF甚至音频。我见过有人把几百 MB 视频塞进附件导致手机每次同步都卡在下载大文件上。建议在移动端不要打开视频附件也尽量不要让 Obsidian 库体积超过 1 到 2GB。大文件可以单独放到图床或网盘库中只保留链接笔记库保持轻量同步速度会快很多。Remotely Save 也支持在插件设置里忽略某些文件夹例如.trash、.git这样能减少不少同步压力。5.3 冲突文件出现后怎么处理多设备离线修改同一个文件时Remotely Save 会在本地保存一个带“conflicted”标记的副本。处理原则是不要在手机上直接删掉它因为你不知道另一台设备里哪个版本是最新的。应该等到电脑端打开两个文件对比合并保留正确版本然后删除冲突副本再进行一次双向同步让远端也保持一致。从根上讲双向同步没有文件锁所以最好的策略是手机端只做短平快的记录比如写日记、捕捉灵感整理和合并留在电脑端做。这样冲突概率会大幅下降。5.4 多台设备的插件配置要统一Obsidian 是本地优先的应用每台设备上的库路径可以不一样但库内的插件配置会有部分写在.obsidian目录里。如果手机端启用了不同插件集合.obsidian文件夹的同步会把某个设备的插件状态带到另一台导致配置反复横跳。解决方法是重要设备都安装同一套插件尤其是在移动端也保留常用的几个核心插件别让配置出现版本差异。这个问题不算难但遇到时很容易让人一头雾水。6. 常见错误与排查思路从日志里找答案6.1 插件日志和阿里云日志双管齐下配置报错了先别慌不要只看弹窗提示去插件的日志页面看完整输出。Remotely Save 的日志会打印每个请求的目标 URL 和状态码。同时你还可以在 OSS 控制台的 Bucket 列表里打开日志管理看是否有请求被拒绝的记录。两边对着看绝大多数问题能快速定位。6.2 四种高频报错和根因报错信息可能原因解决办法InvalidAccessKeyIdAccessKey ID 不匹配重新复制 AccessKey ID检查空格SignatureDoesNotMatchSecret 错误或系统时间不准检查 Secret开启系统自动时间AccessDeniedRAM 授权不足或 Bucket 私有给 RAM 用户授权 OSS 读写权限NoSuchKey / 404远端对象不存在、Prefix 错误检查 PrefixEndpoint 不要带 Bucket 名Endpoint 错误还容易表现为连接超时而不是 404。如果你填成了内网地址或者带桶名地址手机走公网自然连不上。把 Endpoint 换成公网地域节点后问题通常会消失。6.3 手机系统时间不准导致签名失败S3 的签名机制会校验请求时间如果手机时间慢了或快了几分钟OSS 会认为请求过期返回时间偏差类的错误。这个坑很隐蔽插件的报错未必直接告诉你时间问题。解决方法是到手机系统设置里打开自动确定时间然后重新同步。我遇到过一次折腾了半天最后发现是手机时间慢了五分钟。6.4 终极排查手段同样的参数在电脑上试一次如果你在手机上死活连不上而电脑上同样的 AccessKey、Bucket、Endpoint 却能同步成功那问题大概率出在手机端填写错误或手机当前网络环境。建议先在电脑上把完整参数跑通再在手机上逐字对照。也可以换一个网络试试从 Wi-Fi 切到移动数据排除路由器或 DNS 问题。做完这步绝大多数 Remotely Save 加 S3 的问题都能解决。7. 明白费用构成长期维护心里才有底7.1 OSS 费用从哪几个维度产生OSS 的费用主要是三块存储、流量、请求次数。存储按每小时平均用量计费流量分内网、外网流出和回源请求次数按操作次数计费。对 Obsidian 笔记库这种几百 MB 到几 GB 的规模每月存储费通常在一元以内外网流量如果不做大量全量同步基本是几毛钱请求次数虽然多但因为都是小文件月费也只有几分钱。如果开了版本控制历史版本会叠加存储空间费用虽然会高一些但仍然可控。7.2 不要把同步当备份Remotely Save 的作用是让多设备保持一致它不等于备份。如果某一台设备误删了一个文件插件会把删除动作带到远端远端文件也会消失。所以重要笔记库还是建议额外做一层备份。最简单的方法是用 Obsidian Git 插件定时把库推到私人仓库或者每隔一段时间在电脑上手动压缩整个库放到其他存储里。我在同步之外保留了每周一次的全量快照比依赖任何实时同步都踏实。7.3 以后新设备怎么接入这套方案换设备非常轻松。新手机装好 Obsidian 和 Remotely Save填同一组 AccessKey、Region、Bucket点击同步所有笔记和插件配置就会原样下来。注意首次拉取前最好在电脑端确认云端库是最新状态这样可以避免新旧设备之间差异过大。个人经验是先让新设备拉取完成再开始编辑否则本地和远端互相覆盖会造成一堆冲突文件。我用这套方案已经大半年最深的体会是同步这件事配置越简单越可靠。Remotely Save 加阿里云 OSS 看起来要理解几个新名词但只要把 Endpoint、Region 和密钥这三个关键参数填对跑通之后几乎感觉不到它的存在这才是移动端 Obsidian 该有的体验。