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

AI摘要

阿里云OSS配合ossutil命令行工具,可实现Obsidian笔记库免费、高效的多设备同步。ossutil支持增量上传、断点续传等功能。用户需注册阿里云、开通OSS、获取密钥并安装配置ossutil,通过同步命令或脚本将本地笔记库同步至OSS,并可设置定时任务实现自动同步。

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

背景

Obsidian 是一款强大的本地优先的笔记软件,但多设备同步一直是个痛点。虽然 Obsidian 官方提供了 Sync 服务,但需要付费。而阿里云 OSS 作为国内稳定可靠的对象存储服务,配合 ossutil 命令行工具,可以实现免费且高效的 Obsidian 多设备同步方案。

本文将详细介绍如何使用阿里云 ossutil 命令行工具将 Obsidian 笔记库同步到 OSS,实现多设备无缝访问。

什么是 ossutil?

ossutil 是阿里云官方提供的命令行工具,用于管理 OSS(Object Storage Service)。它支持:

  • 文件上传/下载
  • 目录同步
  • 增量上传(只上传修改过的文件)
  • 断点续传
  • 大文件分片上传

ossutil 采用 Go 语言编写,性能优秀,适合大规模文件同步场景。

前置准备

1. 注册阿里云并开通 OSS

  • 访问 阿里云官网 注册账号
  • 开通 OSS 服务(新用户有免费额度)
  • 创建一个 Bucket(存储桶)

2. 获取访问密钥

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

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

安装 ossutil

Linux/macOS

# 下载 ossutil
wget https://gosspublic.alicdn.com/ossutil/1.7.16/ossutil64

# 赋予执行权限
chmod 755 ossutil64

# 移动到系统路径(可选)
sudo mv ossutil64 /usr/local/bin/ossutil

Windows

下载 ossutil64.exe 并添加到系统 PATH 环境变量。

配置 ossutil

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 笔记到 OSS

基本同步命令

# 同步整个 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

多设备使用指南

设备 A(主设备)

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

设备 B(其他设备)

  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 本身有数据冗余,但建议定期备份重要文件

Obsidian 移动端同步:Remotely Save 插件

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

1. 安装 Remotely Save 插件

在 Obsidian 中:

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

2. 配置 Remotely Save 插件

安装完成后:

  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 笔记的路径,建议与电脑端的路径保持一致

3. 使用 Remotely Save 同步

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

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

下载笔记:

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

4. 多设备同步策略

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

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

建议同步流程:

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

注意事项:

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

Saiita

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

相关推荐

暂无评论