使用阿里云 ossutil 命令行同步 Obsidian 笔记到 OSS

AI摘要

阿里云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(存储桶)

  1. 登录阿里云控制台
  2. 进入「访问控制 RAM」->「用户」
  3. 创建新用户或使用现有用户
  4. 为用户添加 AliyunOSSFullAccess 权限
  5. 创建 AccessKey ID 和 AccessKey Secret

注意:请妥善保管 AccessKey Secret,不要泄露!

# 下载 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

按照提示输入:

请输入配置文件名(默认为:/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

参数说明
- 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

使用 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

  1. 配置好 ossutil 并创建同步脚本
  2. 设置定时任务自动上传
  3. 正常使用 Obsidian 编辑笔记

  1. 安装并配置 ossutil(使用相同的 AccessKey)
  2. 创建下载脚本:
#!/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 同步笔记到本地"
  1. 设置定时任务自动下载(与设备 A 的上传时间错开)

  1. 时间错开:避免同时读写同一文件,建议上传和下载时间错开至少 30 分钟
  2. 冲突处理:如果多个设备同时编辑,可能出现冲突,建议一个设备作为主编辑设备
  3. 备份:OSS 本身有数据冗余,但建议定期备份重要文件

电脑端可以使用 ossutil 命令行同步,但手机端没有命令行环境。这时我们需要使用 Remotely Save 插件,让手机端的 Obsidian 也能通过阿里云 OSS 同步笔记。

在 Obsidian 中:

  1. 打开 设置 -> 第三方插件 -> 浏览
  2. 搜索 Remotely Save
  3. 点击 安装

安装完成后:

  1. 在 Obsidian 中打开 设置 -> 第三方插件 -> Remotely Save
  2. 点击 添加新的远程服务
  3. 选择 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
  • Bucket:你的 OSS Bucket 名称
  • Remote Path:OSS 中存储 Obsidian 笔记的路径,建议与电脑端的路径保持一致

配置完成后,在手机端 Obsidian 中:

  1. 点击 插件图标(通常在侧边栏)
  2. 选择配置好的阿里云 OSS 服务
  3. 点击 上传当前文件上传所有文件
  4. 等待上传完成

下载笔记:

  • 点击 下载所有文件,会将 OSS 中的笔记同步到手机
  • 注意:下载会覆盖本地同名文件,建议首次使用前备份本地笔记

使用 ossutil(电脑) + Remotely Save(手机)的同步方案:

  • 电脑端:使用 ossutil 命令行 + cron 定时任务自动上传
  • 手机端:使用 Remotely Save 插件手动同步(或设置自动同步)
  • 服务器端:同样可以使用 ossutil 命令行同步

建议同步流程:

  1. 在电脑上编辑笔记,ossutil 自动上传到 OSS
  2. 手机端使用 Remotely Save 下载所有文件,获取最新笔记
  3. 手机端编辑笔记后,使用 Remotely Save 上传当前文件
  4. 电脑端 ossutil 会自动同步手机端上传的新文件

注意事项:

  • 避免同时在多个设备编辑同一个文件,可能导致冲突
  • 建议一个设备作为主编辑设备(如电脑),其他设备主要用于查看
  • 定期备份重要笔记,以防误操作导致数据丢失

Saiita

我还没有学会写个人说明!

相关推荐

暂无评论