笔记同步方案
前言
笔记里写了一大堆东西,现在在windows上保存,并把windows的磁盘开机自动挂载到linux上实现双端的同步,但这样在手机上是访问不到笔记的,很不方便,使用服务器搭建一个webdav倒是很方便,但是这个轻量学生机不是很可靠,万一哪天我玩崩了,内容就消失了,还是使用云服务比较靠谱。
typora+picgo+七牛云
我只考虑使用typora作为md编辑器,因为它非常顺手,我的嘉然主题和字体也非常好看。
图片上传使用picgo,一开始用的smms图床,smms图床有足够的免费空间,但是不知何时开始国内无法访问了,图床转而用了聚合图床,免费而且快,但某日发现它会把png转成jpg,这导致我的图片从rgba变成了rgb,这非常不合理,于是转用了七牛云。
七牛云的cdn用https要记流量付费,于是用nginx做一个反代来实现https的图片
尝试joplin
了解到joplin可以作为一个开源的笔记同步工具,安装下来试了试,基本的流程就是
- 导入笔记
- 设置同步,可以同步到onedrive、dropdox等,也可以是任何的webdav
- 然后设置外部编辑器为typora
每次打开joplin,编辑时打开外部编辑器,但编辑完还得关闭,整个流程非常麻烦,体验非常不好。
坚果云
有看到用typora+坚果云的方案,也去试了试,坚果云会提供免费的空间,也有提供linux的客户端
同步的方法就是webdav,和onedrive是一样的
但同步需要运行它的客户端,我不是很想每次开机都启动一个坚果云客户端,只把它用来同步我的md笔记
onedrive
考虑到还是得用webdav,最后还是回到了onedrive,onedrive在windows上同步是非常方便的,但在linux上挂载需要额外的操作
rclone
1 | curl https://rclone.org/install.sh | sudo bash |
你需要拿到access_token,或者申请一个API key,用于后续配置中的config_token>
,没有API key,client_id>
和client_secret>
为空即可
1 | rclone authorize "onedrive" |
然后配置rclone
1 | rclone config |
验证:
1 | rclone lsd <配置的网盘名称>:/ |
挂载onedrive
1 | sudo apt install fuse |
1 | rclone mount <配置的云盘名称>:<要挂载的云盘目录> <作为挂载点的本地目录> --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --daemon |
1 | rclone mount onedrive:/ /home/ryao/onedrive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --daemon |
取消挂载:
1 | sudo fusermount -qzu <挂载路径> |
开机自启
1 | command=" mount onedrive:/ /home/ryao/onedrive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --daemon" |
1 | cat > /etc/systemd/system/rclone.service <<EOF |
1 | # 开机自启 |
终于配置好了,然后发现onedrive的速度简直就是一种折磨,尝试使用了google drive,依旧慢的离谱
dropbox
https://www.dropbox.com/install
放弃了折腾,选择了dropbox。
不过由于国内连不上的原因,用代理安装后还要再安装Dropbox daemon,但是会connection reset by peer.
通过下载Dropbox daemon放到根目录就行了。
rclone+kodo
由于众所周知的原因,dropbox不方便访问,所以尽管它很好用,在我这也不好用。
为什么我不能直接用对象存储来同步呢?难道我访问oss只能用cdn回源?
在我考虑用rclone来操作dropbox而不是使用它的客户端时,我发现rclone有s3的选项
配置好就行了,文档:https://developer.qiniu.com/kodo/12285/docking-rclone
rclone是一个强大的工具
使用rclone sync local-path qiniu:dest-bucket-name/dest-directory-path
进行同步
对比本地与云rclone check local-path qiniu:dest-bucket-name/dest-directory-path
非常完美