同步 Aino 仓库

首次同步

首次使用前请备份重要内容,先用测试仓库验证连接和跨设备同步,再接入正式仓库。

Aino 仓库同步适合个人多设备连续使用:在桌面端整理仓库,在手机上继续记录、查看和补充。它不是实时多人协作工具,也不要求你把笔记交给 Aino 官方服务器;同步数据放在你自己选择的对象存储或 WebDAV 服务里。

简体中文界面默认推荐 阿里云 OSS(S3);英文、繁体中文及其他语言默认推荐 Cloudflare R2(S3)。应用中的服务顺序和新建 S3 连接的默认选项也遵循这一规则。已有连接不会因切换语言而更换服务。请先在各设备常用网络测试。

打开 设置 → 同步与备份,在「同步」中选择 WebDAV 或兼容 S3 的对象存储。Git 备份是同一页中的独立选项。

设置 → 同步与备份:同步和 Git 备份分别配置

选择同步服务

服务Aino 中的选择配置要点
阿里云 OSSS3 → 阿里云 OSS(S3)实际地域、私有桶、关闭路径寻址
Cloudflare R2S3 → Cloudflare R2(S3)账号级 Endpoint、Region auto、开启路径寻址
腾讯云 COSS3 → 腾讯云 COS(S3)完整 APPID 后缀桶名、关闭路径寻址
Amazon S3S3 → 自定义桶的实际 Region、限桶 IAM 凭据
MinIOS3 → MinIO设备能访问的服务地址及管理员提供的 Region
NextcloudWebDAV → Nextcloud完整 WebDAV 地址、账号 ID、应用专用密码

同一仓库在各设备上使用一致的服务地址、Bucket 或 WebDAV 账号及远程目录。不同服务商的密钥不能混用,S3 预设也不会替你开通账号或创建桶。

推荐:阿里云 OSS(S3)

主要在中国大陆使用时,优先选择阿里云 OSS,并选择接近常用设备的地域。Aino 使用 S3 兼容接口,Bucket 保持私有即可。

  1. 登录阿里云控制台,开通 对象存储 OSS,创建专用 Bucket;选择 标准存储、私有读写权限。
  2. 记下 Bucket 的地域与公网 Endpoint。手机和家庭电脑不能使用 -internal 内网 Endpoint。
  3. 在 访问控制 RAM 创建专用用户与 AccessKey。不要把主账号 AccessKey 用于日常同步。
  4. 创建自定义权限策略,只授权该同步桶:桶资源 acs:oss:*:*:YOUR_BUCKET 允许 oss:ListObjects;对象资源 acs:oss:*:*:YOUR_BUCKET/* 允许 oss:GetObject、oss:PutObject、oss:DeleteObject。将 YOUR_BUCKET 换成真实桶名,绑定到该 RAM 用户。
  5. 保存 AccessKey ID 和 Secret,进入 Aino 设置 → 同步与备份 → S3 → 阿里云 OSS(S3)。
字段填写内容
Endpoint杭州示例:https://oss-cn-hangzhou.aliyuncs.com;其他地域按桶的实际接入点填写
Bucket只填桶名,不附加 URL 或文件夹
Region杭州为 cn-hangzhou;必须与桶地域一致
AccessKey ID / Secret专用 RAM 用户的密钥
Prefix/Aino,同一仓库的各设备保持一致
路径寻址关闭,由客户端将桶名放在域名前

阿里云 OSS 预设:核对地域、Endpoint,并关闭路径寻址

预设中的杭州只是示例,不会替你创建桶。不要把含桶名的完整对象 URL 当作 Endpoint,也不要为同步打开公共读写。先从「更多」执行 检查连接,再执行同步;若账号或地域要求额外的访问配置,按控制台错误与官方说明处理,不要直接改为公共桶。

参考:阿里云 OSS 的 S3 兼容范围、OSS 与访问凭据。

推荐:Cloudflare R2(S3)

如果你已经有 Cloudflare 账号,或希望使用海外可用的 S3 兼容对象存储,也可以选择 Cloudflare R2。Aino 通过 R2 的 S3 兼容 API 读写对象,不需要公开 Bucket,也不需要打开公共访问 URL。

先在 Cloudflare 控制台准备:

  1. 进入 R2 对象存储,创建一个 Bucket。
  2. 在 R2 的 API Token 页面创建 R2 专用 API Token。个人同步建议只给目标 Bucket Object Read & Write 权限。
  3. 创建后立即保存 Access Key ID 和 Secret Access Key。Secret 只显示一次,丢失后需要重新生成。
  4. 复制 Bucket 名称和账号级 S3 API endpoint。

Cloudflare 官方文档:

在 Aino 里填写:

字段填什么
存储类型S3
服务Cloudflare R2(S3)
Endpoint默认 R2 endpoint:https://<ACCOUNT_ID>.r2.cloudflarestorage.com
Bucket你创建的 R2 Bucket 名称
Regionauto
AccessKey IDR2 API Token 页面给出的 Access Key ID
AccessKey SecretR2 API Token 页面给出的 Secret Access Key
Prefix建议用 /Aino 或 /LifeOS,多台设备必须保持一致
路径寻址建议保持开启。Aino 已按路径寻址验证过 R2;如果你有特殊网关再切换测试。
Tip

如果 Bucket 创建在 EU 管辖区,Endpoint 要使用 https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.com。默认管辖区使用普通 endpoint 即可。

Warning

不要把 Cloudflare 的 Account API Token 填到 Aino。Aino 需要的是 R2 S3 客户端凭据,也就是 Access Key ID 和 Secret Access Key。

Cloudflare R2 预设:Region 为 auto,路径寻址开启

预设中的 account-id 必须替换为控制台显示的账号 ID;直接复制控制台的完整 S3 API Endpoint 最稳妥。

腾讯云 COS(S3)

已有腾讯云账号时,也可以使用 腾讯云 COS(S3)。数据仍保存在自己的私有桶中。

  1. 在 COS 控制台创建私有的标准存储桶,记录实际地域和完整桶名。桶名必须包含 APPID 后缀,例如 aino-sync-1250000000。
  2. 在访问管理 CAM 中准备专用子用户及编程访问凭据,仅授权目标桶的对象列举、读取、写入和删除权限;无需公开桶,也不需要整个账号的管理权限。
  3. 在 Aino 设置 → 同步与备份 → S3 中选择 腾讯云 COS(S3)。
字段填写内容
Endpoint广州示例:https://cos.ap-guangzhou.myqcloud.com;不包含桶名或对象路径
Bucket包含 APPID 后缀的完整桶名,例如 aino-sync-1250000000
Region广州为 ap-guangzhou,其他地域按实际桶填写,并同步修改 Endpoint
AccessKey IDCAM 凭据中的 SecretId
AccessKey SecretCAM 凭据中的 SecretKey,不是账号登录密码
Prefix/Aino;同一仓库各设备保持一致
路径寻址关闭,使用虚拟主机寻址

腾讯云 COS 预设:地域与 Endpoint 匹配,路径寻址关闭

广州只是示例,预设不会创建桶。先展开 更多 → 检查连接,再用少量测试文件检查跨设备新增、修改、改名和删除。桶版本控制可能影响禁止覆盖能力,配置与测试结果不明时不要接入正式库。已配置 AI 的桌面端可点击服务旁的 AI 引导配置同步;密钥只填在设置中,不发送到聊天。

参考:腾讯云 S3 兼容接入、COS 上传与禁止覆盖。

Amazon S3(自定义 S3)

AWS S3 使用现有的 自定义 S3 连接,无需单独安装插件或选择 AWS 专用预设。

  1. 在 AWS S3 控制台创建专用的 通用存储桶,记录实际地域。保留“阻止所有公开访问”,关闭 ACL,使用默认 SSE-S3 加密。
  2. 创建仅供同步使用的 IAM 用户和 Access Key,不使用根账号密钥。只为目标桶授予下方权限。
  3. 在 Aino 设置 → 同步与备份 → S3 → 自定义 S3 中填写下表。东京仅为示例,Endpoint 与 Region 必须对应实际桶地域。
字段填写内容
Endpoint东京示例:https://s3.ap-northeast-1.amazonaws.com
Bucket桶名,例如 your-aino-vault,不包含 URL 或路径
Region东京为 ap-northeast-1,不是 R2 的 auto
AccessKey ID / Secret专用 IAM 用户的 Access Key ID 与 Secret Access Key
Prefix/Aino,同一仓库各设备保持一致
路径寻址开启;也已验证虚拟主机寻址的基础读写,可按实际配置关闭

桶级资源 arn:aws:s3:::YOUR_BUCKET 允许 s3:ListBucket、s3:GetBucketLocation;对象资源 arn:aws:s3:::YOUR_BUCKET/* 允许 s3:GetObject、s3:PutObject、s3:DeleteObject。将 YOUR_BUCKET 换成真实桶名。日常同步不需要列出整个账号的桶或管理 ACL。使用 SSE-KMS、对象锁或特殊桶策略时,还需根据实际设置核对额外权限与限制。

先展开 更多 → 检查连接,再用小型测试库验证。AWS 已通过真实云端同步引擎回归和 macOS 应用连接检查;这不代表 AWS 的三端大仓库验证已经完成。存储、请求和出站流量分别计费,请按常用网络选择地域。

参考:AWS 桶级 IAM 策略、S3 接入点与地域。

Nextcloud(WebDAV)

已有 Nextcloud 或准备自部署时,在 Aino 选择 WebDAV → Nextcloud。部署服务器、域名、HTTPS 证书、升级及备份由你或服务提供者管理;Aino 不会代为部署服务器。

  1. 先在浏览器确认你的 Nextcloud 可以正常登录和上传文件,自部署可从 Nextcloud 安装说明 开始。
  2. 在 Nextcloud 文件 → 文件设置 中复制 WebDAV 地址。常见形式为 https://cloud.example.com/remote.php/dav/files/USERNAME/;子目录部署须保留子目录,使用页面给出的完整地址。
  3. 在个人安全设置中生成 应用专用密码。Aino 用户名填写与 WebDAV 地址对应的账号 ID,密码填写应用专用密码。
  4. Endpoint 填完整 WebDAV 地址,远程根目录设为 /Aino。先 检查连接,再用少量笔记和附件测试新增、覆盖、改名与删除。

不要将网页分享链接或服务器首页当作 WebDAV 地址。启用双因素认证时仍使用应用专用密码。反向代理的上传大小、超时、存储配额和证书问题需在服务器侧处理;先检查失败项,不要反复手动重试。

参考:Nextcloud 官方 WebDAV 配置。

在第一台设备上开启同步

  1. 打开 Aino 的 设置。
  2. 找到 同步,开启同步开关。
  3. 存储类型选择 S3。
  4. 服务选择 阿里云 OSS(S3)、Cloudflare R2(S3) 或 腾讯云 COS(S3)。
  5. 填入 Bucket、Endpoint、AccessKey ID、AccessKey Secret。
  6. Prefix 建议填 /Aino。
  7. OSS 和 COS 关闭 路径寻址,R2 保持开启。
  8. 先点击 检查连接,确认服务可用。
  9. 再点击 同步,等待第一次同步完成。

第一次同步会扫描本地仓库,并把需要上传的文件分批写入远程存储。仓库文件越多,第一次同步越久。同步过程中可以展开详情查看当前文件、批次进度和失败项。

在第二台设备上接入同一个 Aino 仓库

在第二台设备上使用同一组远程配置:

  • 存储类型相同:S3
  • 服务相同:OSS、R2 或 COS,按第一台设备选择
  • Bucket 相同
  • Prefix 相同,例如都用 /Aino
  • AccessKey 拥有同一 Bucket 的读写权限

然后先 检查连接,再手动执行一次同步。第二台设备会从远程拉取缺失文件,并写入本地仓库。

Tip

如果你想把测试数据和正式仓库分开,可以改 Prefix,例如 /Aino-test。只要 Prefix 不同,两套同步空间就是隔离的。

可选:WebDAV

如果你已经有稳定的 WebDAV 服务,也可以选择 WebDAV。常见选择包括:

  • Koofr
  • Nextcloud
  • InfiniCLOUD
  • 自建 WebDAV 服务

WebDAV 配置时建议使用服务商生成的 应用专用密码,不要直接填写主账号密码。远程根文件夹同样建议使用 /Aino,并确保每台设备保持一致。

S3 和 WebDAV 怎么选

需求建议
中国大陆用户,从零开始配置同步阿里云 OSS(S3)
国际访问或已有 Cloudflare 账号Cloudflare R2(S3)
已经有 WebDAV 网盘账号继续用现有 WebDAV
仓库文件很多优先 S3
想用更通用的个人网盘WebDAV 更容易理解
希望服务端语义更稳定S3 的对象读写、列表和状态检查更可预测
希望配置最少使用 OSS / R2 预设,按控制台填写桶与密钥

使用建议

  • 同步前先备份重要仓库。
  • 第一次同步尽量让一台设备完整跑完,再接入第二台设备。
  • 不要在两台设备上同时编辑同一个文件。
  • Aino 会默认在 .aino-sync-ignore 写入 .git 和 .obsidian,你可以在设置里修改这份忽略规则。
  • 大文件和插件文件夹会拖慢首次同步。只同步真正需要跨端使用的内容。

常见问题

从其他存储迁移到 OSS、R2 或 COS

先备份并确认一台设备拥有完整仓库,在新服务创建独立桶或 Prefix,由这台设备先完整上传。其余设备选择新的空文件夹并接入相同配置,确认笔记和附件完整后再停止旧同步。不要同时将旧服务和新服务写入同一个本地文件夹,也不要在验收前删除旧桶。切换服务需要重新填写对应凭据。

检查连接失败

先检查 Endpoint 是否带 https://,Bucket 是否正确,AccessKey 是否仍有效。OSS 核对地域且关闭路径寻址;R2 使用账号级 Endpoint、Region auto 且开启路径寻址。COS 核对桶名的 APPID 后缀、实际地域并关闭路径寻址。自定义 S3 按服务商要求设置路径寻址。

报 401 或 403

通常是 AccessKey / Secret 错误,或应用没有 Bucket 读写权限。重新生成应用密钥后,在每台设备上更新。

报 429 或 503

查看失败项和下次重试时间,避免反复点击同步增加请求。检查服务商配额与账单状态;更换服务需要按迁移步骤进行。存储、请求和下载费用分别计费,开通前查看服务商当前价格。

报 400

先检查路径寻址、Endpoint、Bucket 和 Prefix。S3 兼容服务对特殊字符路径的兼容性不同,Aino 会处理常见路径编码,但仍建议先用小仓库测试。

第二台设备没有看到文件变化

检查两台设备的 Prefix 是否完全一致。/Aino 和 /Aino/backup 是两套不同的同步空间。

同步一直显示扫描本地仓库

大库首次同步需要时间,尤其是 Android 文件系统授权文件夹。只要进度数字还在变化,就可以继续等待。

下一步