介绍: 基于 git 和阿里云 oss 的数据同步方法
这里,我介绍一种同步方式。
使用 git
来同步笔记文件。
使用 oss
来同步图片文件。
用 oss
的 ossutil
同步有个好处,可以删除云端无用的图片、pdf 等,避免云端数据一直增长,只保留用的上的文件。
如果隐私文件,可以选择加密后 push:这里
Git 同步的数据
比如我们的工作空间是 /data/SiYuan
那么,同步此目录,并在 .gitignore
排除下面的文件和目录,包括 assets
。
由于我们排除了重要文件夹 assets
,我们后续需要将用其他工具来同步。
# .gitignore
# 帮助文档的笔记本
SiYuan/data/20210808180117-czj9bvb
# 图片、pdf等。
SiYuan/data/assets
# 其他的目录、文件。
SiYuan/data/.siyuan
SiYuan/data/storage/recent-doc.json
SiYuan/conf/windowState.json
SiYuan/backup
SiYuan/history
SiYuan/sync
SiYuan/temp
SiYuan/.lock
下面我们做个定时脚本来同步仓库
# auto-push.sh
git add -A
git commit -m "auto-push"
git push -f
使用 crontab
每 5
分钟同步一次:
*/5 * * * * /data/SiYuan/auto-push.zsh
使用 ossutil
来同步 assets
目录
ossutil
是开源的工具,用于阿里云 oss 的数据上传、下载。
https://github.com/aliyun/ossutil
我用了好久,没有产生费用,估计是我的数据少吧。
sync
是 ossutil
的一个子命令。
扩充到刚才的脚本里面:
# auto-push.sh
git add -A
git commit -m "auto-push"
git push -f
ossutil sync \
/data/SiYuan/data/assets \
oss://myoss/siyuan-assets \
--update --delete --force
请将
myoss
改为你的bucket
名字。
下面是我用的参数。
-f --force | 强制操作,不进行询问提示。 |
---|---|
-u,--update | 只有当目标文件不存在,或源文件的最后修改时间晚于目标文件时, ossutil 才会执行同步操作。 |
--delete | 删除目的端指定路径下的其他文件,仅保留本次同步的文件。 警告 建议您使用**--delete**选项前开启版本控制,防止数据误删除。 |
ossutil sync
的文档
恢复文件
ossutil sync \
oss://myoss/siyuan-assets \
/data/SiYuan/data/assets \
--update
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于