阿里云OSS配合ossutil命令行工具,可实现Obsidian笔记库免费、高效的多设备同步。ossutil支持增量上传、断点续传等功能。用户需注册阿里云、开通OSS、获取密钥并安装配置ossutil,通过同步命令或脚本将本地笔记库同步至OSS,并可设置定时任务实现自动同步。
Obsidian 是一款强大的本地优先的笔记软件,但多设备同步一直是个痛点。虽然 Obsidian 官方提供了 Sync 服务,但需要付费。而阿里云 OSS 作为国内稳定可靠的对象存储服务,配合 ossutil 命令行工具,可以实现免费且高效的 Obsidian 多设备同步方案。
本文将详细介绍如何使用阿里云 ossutil 命令行工具将 Obsidian 笔记库同步到 OSS,实现多设备无缝访问。
ossutil 是阿里云官方提供的命令行工具,用于管理 OSS(Object Storage Service)。它支持:
- 文件上传/下载
- 目录同步
- 增量上传(只上传修改过的文件)
- 断点续传
- 大文件分片上传
ossutil 采用 Go 语言编写,性能优秀,适合大规模文件同步场景。
- 访问 阿里云官网 注册账号
- 开通 OSS 服务(新用户有免费额度)
- 创建一个 Bucket(存储桶)
- 登录阿里云控制台
- 进入「访问控制 RAM」->「用户」
- 创建新用户或使用现有用户
- 为用户添加
AliyunOSSFullAccess 权限
- 创建 AccessKey ID 和 AccessKey Secret
AliyunOSSFullAccess 权限注意:请妥善保管 AccessKey Secret,不要泄露!
# 下载 ossutil
wget https://gosspublic.alicdn.com/ossutil/1.7.16/ossutil64
# 赋予执行权限
chmod 755 ossutil64
# 移动到系统路径(可选)
sudo mv ossutil64 /usr/local/bin/ossutil
# 下载 ossutil
wget https://gosspublic.alicdn.com/ossutil/1.7.16/ossutil64
# 赋予执行权限
chmod 755 ossutil64
# 移动到系统路径(可选)
sudo mv ossutil64 /usr/local/bin/ossutil
下载 ossutil64.exe 并添加到系统 PATH 环境变量。
ossutil config
ossutil config
按照提示输入:
请输入配置文件名(默认为:/home/user/.ossutilconfig,回车使用默认配置):
请输入endpoint:例如:oss-cn-hangzhou.aliyuncs.com
请输入accessKeyID:your-access-key-id
请输入accessKeySecret:your-access-key-secret
请输入stsToken:
endpoint 格式:oss-<region>.aliyuncs.com
- 华东1(杭州):oss-cn-hangzhou.aliyuncs.com
- 华北2(北京):oss-cn-beijing.aliyuncs.com
- 华南1(深圳):oss-cn-shenzhen.aliyuncs.com
# 同步整个 Obsidian vault 到 OSS
ossutil sync /path/to/obsidian/vault oss://your-bucket-name/path/to/obsidian/ --update
# 同步整个 Obsidian vault 到 OSS
ossutil sync /path/to/obsidian/vault oss://your-bucket-name/path/to/obsidian/ --update
参数说明:
- sync:同步命令
- /path/to/obsidian/vault:本地 Obsidian vault 目录
- oss://your-bucket-name/path/to/obsidian/:OSS 目标路径
- --update:增量上传,只上传修改过的文件
为了方便使用,我们可以创建一个 Shell 脚本:
#!/bin/bash
# Obsidian 笔记同步到阿里云 OSS
LOCAL_VAULT="/home/user/Obsidian/MyVault"
OSS_TARGET="oss://your-bucket-name/obsidian/MyVault/"
# 使用 ossutil 同步文件到 OSS
# --update 参数:只上传本地修改过的文件或 OSS 不存在的文件
ossutil sync "$LOCAL_VAULT" "$OSS_TARGET" --update
# 统计同步的文件数量
SYNCED_COUNT=$(find "$LOCAL_VAULT" -type f | wc -l)
echo "✅ 已同步 $SYNCED_COUNT 个文件到阿里云 OSS"
保存为 sync-obsidian-oss.sh,赋予执行权限:
chmod +x sync-obsidian-oss.sh
./sync-obsidian-oss.sh
./sync-obsidian-oss.sh
使用 cron 实现自动定时同步:
crontab -e
添加以下内容(每天凌晨 2 点同步):
# Obsidian 笔记同步到阿里云 OSS - 每天凌晨 2 点执行
0 2 * * * /path/to/sync-obsidian-oss.sh >> /tmp/sync-obsidian-oss.log 2>&1
# 每 2 小时同步一次
0 */2 * * * /path/to/sync-obsidian-oss.sh >> /tmp/sync-obsidian-oss.log 2>&1
# 工作日每小时同步
0 9-18 * * 1-5 /path/to/sync-obsidian-oss.sh >> /tmp/sync-obsidian-oss.log 2>&1
# 手动触发后 10 分钟同步
*/10 * * * * /path/to/sync-obsidian-oss.sh >> /tmp/sync-obsidian-oss.log 2>&1
# 每 2 小时同步一次
0 */2 * * * /path/to/sync-obsidian-oss.sh >> /tmp/sync-obsidian-oss.log 2>&1
# 工作日每小时同步
0 9-18 * * 1-5 /path/to/sync-obsidian-oss.sh >> /tmp/sync-obsidian-oss.log 2>&1
# 手动触发后 10 分钟同步
*/10 * * * * /path/to/sync-obsidian-oss.sh >> /tmp/sync-obsidian-oss.log 2>&1
- 配置好 ossutil 并创建同步脚本
- 设置定时任务自动上传
- 正常使用 Obsidian 编辑笔记
- 安装并配置 ossutil(使用相同的 AccessKey)
- 创建下载脚本:
#!/bin/bash
# 从 OSS 下载 Obsidian 笔记到本地
LOCAL_VAULT="/home/user/Obsidian/MyVault"
OSS_SOURCE="oss://your-bucket-name/obsidian/MyVault/"
# 从 OSS 同步到本地
ossutil sync "$OSS_SOURCE" "$LOCAL_VAULT" --update
echo "✅ 已从阿里云 OSS 同步笔记到本地"
- 设置定时任务自动下载(与设备 A 的上传时间错开)
#!/bin/bash
# 从 OSS 下载 Obsidian 笔记到本地
LOCAL_VAULT="/home/user/Obsidian/MyVault"
OSS_SOURCE="oss://your-bucket-name/obsidian/MyVault/"
# 从 OSS 同步到本地
ossutil sync "$OSS_SOURCE" "$LOCAL_VAULT" --update
echo "✅ 已从阿里云 OSS 同步笔记到本地"
- 时间错开:避免同时读写同一文件,建议上传和下载时间错开至少 30 分钟
- 冲突处理:如果多个设备同时编辑,可能出现冲突,建议一个设备作为主编辑设备
- 备份:OSS 本身有数据冗余,但建议定期备份重要文件
电脑端可以使用 ossutil 命令行同步,但手机端没有命令行环境。这时我们需要使用 Remotely Save 插件,让手机端的 Obsidian 也能通过阿里云 OSS 同步笔记。
在 Obsidian 中:
- 打开 设置 -> 第三方插件 -> 浏览
- 搜索
Remotely Save - 点击 安装
安装完成后:
- 在 Obsidian 中打开 设置 -> 第三方插件 -> Remotely Save
- 点击 添加新的远程服务
- 选择 S3 Compatible Service(阿里云 OSS 兼容 S3 协议)
填写配置信息:
S3 Endpoint: s3.oss-cn-hangzhou.aliyuncs.com # 根据你的 OSS 区域选择
Bucket: your-bucket-name # 你的 OSS Bucket 名称
Access Key ID: your-access-key-id # 你的 AccessKey ID
Secret Access Key: your-access-key-secret # 你的 AccessKey Secret
Remote Path: obsidian/MyVault/ # OSS 中的存储路径
重要配置项说明:
- S3 Endpoint:阿里云 OSS 的 S3 兼容端点,格式为
s3.{region}.aliyuncs.com- 华东1(杭州):
s3.oss-cn-hangzhou.aliyuncs.com - 华北2(北京):
s3.oss-cn-beijing.aliyuncs.com - 华南1(深圳):
s3.oss-cn-shenzhen.aliyuncs.com
- 华东1(杭州):
- Bucket:你的 OSS Bucket 名称
- Remote Path:OSS 中存储 Obsidian 笔记的路径,建议与电脑端的路径保持一致
配置完成后,在手机端 Obsidian 中:
- 点击 插件图标(通常在侧边栏)
- 选择配置好的阿里云 OSS 服务
- 点击 上传当前文件 或 上传所有文件
- 等待上传完成
下载笔记:
- 点击 下载所有文件,会将 OSS 中的笔记同步到手机
- 注意:下载会覆盖本地同名文件,建议首次使用前备份本地笔记
使用 ossutil(电脑) + Remotely Save(手机)的同步方案:
- 电脑端:使用 ossutil 命令行 + cron 定时任务自动上传
- 手机端:使用 Remotely Save 插件手动同步(或设置自动同步)
- 服务器端:同样可以使用 ossutil 命令行同步
建议同步流程:
- 在电脑上编辑笔记,ossutil 自动上传到 OSS
- 手机端使用 Remotely Save 下载所有文件,获取最新笔记
- 手机端编辑笔记后,使用 Remotely Save 上传当前文件
- 电脑端 ossutil 会自动同步手机端上传的新文件
注意事项:
- 避免同时在多个设备编辑同一个文件,可能导致冲突
- 建议一个设备作为主编辑设备(如电脑),其他设备主要用于查看
- 定期备份重要笔记,以防误操作导致数据丢失
暂无评论
要发表评论,您必须先 登录