前记
之前用过很多记笔记的方法,有想过博客等博客平台记录,但后来放弃了,毕竟笔记和博客区别很大。后来用过印象笔记,但是穷逼版账户限制了每月60M的上传流量。那有没有一种属于私人平台记录笔记的软件,同时记录笔记的数据库可以在多个平台之前互通。
需求
(1)记录笔记的数据库可以无限扩展,支持多终端平台;
(2)存储笔记数据库的云盘不限制上传下载速度;
(3)终生免费!!!
教程——myBase + 阿里云盘 + WebDav
目前个人使用的平台主要是Windows和Ubuntu,其他的没有去研究。
(1) Windows
myBase7破解版:链接:https://pan.baidu.com/s/10jqWfTzeJ66KK209FK5RoA 提取码:4b4l
阿里云盘网页版:阿里云盘
RaiDriver:Download RaiDrive 2021.12.35
1.1 安装myBase7
下载上面链接中的zip,解压后可以看到下面的两个exe文件
myBase-Desktop-Ver710-Pro-Setup.exe是安装文件,安装完成后,先不要打开,用解压后的myBase.exe替换安装目录中的myBase.exe即可完成破解。
破解完成后,点工具栏中的“帮助-产品注册”,在用户名和注册码那两栏,随便输入什么字符都是可以的。
上面的内容是提炼出来的破解方法,也可以自行百度、Google。
myBase记录笔记以后,保存的文件主要是下面三个
nyf格式的文件,是记录笔记的数据库,点击保存按钮即可生成或者更新笔记数据库;
bak文件,是笔记数据库的备份,点击“文件-维护-备份数据库”即可生成或更新该备份文件;
dbindex文件,是用于笔记搜索时的索引,点击“文件-维护-更新索引”即可生成或者更新该索引文件(建议定期更新索引,这样可以提高搜索效率);
上面这三个文件就是我要在多个平台之间同步的文件。
如果在本地新建目录,然后将myBase的生成文件保存在这个目录下,有更新后将本地文件向云盘上传,当切换平台时,再将最新的同步到另一个平台的本地目录下,这样的步骤是太麻烦了。
针对上述的方案,如果将云盘挂载为一个本地磁盘就能解决这个问题了。
1.2 阿里云盘 + WebDav
阿里云盘是阿里最新推出的不限速的云盘,至于容量方面,大家可以定期领取一些任务来扩容。
WebDav协议,大家可以参考网络存储文件共享之WebDAV - 知乎
WebDav只是通信协议,这里挂载阿里云盘到本地,我们需要一个工具RaiDriver,下载地址前面已经给到了。
下面是教程步骤:
重点是这个开源实现:GitHub - zxbu/webdav-aliyundriver: 阿里云盘(https://www.aliyundrive.com/) 的webdav协议开源实现
第一步、获取refreshToken
登录阿里云盘,按F12,打开开发者工具,点击"应用-本地存储空间"的小箭头,点击数据库“https://www.aliyundrive.com/”的索引token,找到值中对应的refresh_token。
也可以直接点击下面链接查看方法
GitHub - zxbu/webdav-aliyundriver: 阿里云盘(https://www.aliyundrive.com/) 的webdav协议开源实现
或者在控制台输入下面代码,回车得到refreshToken。
var data = JSON.parse(localStorage.getItem('token'));
console.log(`refresh_token => ${data.refresh_token}`);
第二步、实现阿里云盘的webdav协议
这里我选择github中提供的jar包来运行的。
下载github提供的jar包,也可以自己编译生成。https://github.com/zxbu/webdav-aliyundriver#jar%E5%8C%85%E8%BF%90%E8%A1%8C
下载后,在本地找一个目录存放,这里我放在下面的目录
我在这个目录下新建了一个bat脚本,
java -jar "C:\Program Files\Aliyun_StartUp\webdav-aliyundriver-2.4.2.jar" --aliyundrive.refresh-token="your refeshToken" --server.port=9999 --aliyundrive.auth.enable=true --aliyundrive.auth.user-name=admin --aliyundrive.auth.password=admin --aliyundrive.work-dir="C:\Program Files\Aliyun_StartUp\work"
参数说明:
--aliyundrive.refresh-token
阿里云盘的refreshToken,获取方式见下文
--server.port
非必填,服务器端口号,默认为8080
--aliyundrive.auth.enable=true
是否开启WebDav账户验证,默认开启
--aliyundrive.auth.user-name=admin
WebDav账户,默认admin
--aliyundrive.auth.password=admin
WebDav密码,默认admin
--aliyundrive.work-dir=/etc/aliyun-driver/
token挂载路径(如果多开的话,需修改此配置)
运行上述bat后,浏览器打开地址(命令中端口设置了9999,可自己修改其他的):http://localhost:9999/
输入命令中设置的用户名和密码,如果没有修改,用户名和密码就都是admin
登录后,如下所示:
一层层的打开后,可以看到我存储在云端的笔记数据库
第三步、将阿里云盘挂载为本地磁盘
打开安装后的RaiDriver,点设置,可以选择语言为中文简体,并添加到启动项
然后点添加按钮,按照下图来配置,服务类型选择NAS-WebDav
虚拟驱动器可以自定义盘符和名称,去掉地址后面方框的勾选,即取消安全连接,地址写localhost或者127.0.0.1,端口、账号、密码是之前在配置阿里云盘的WebDav协议时设置的。
点击连接按钮后,在我的电脑中打开相应的虚拟驱动器。
第四步、设置开机自启动
第三步中已经设置了RaiDriver的自启动了,但是每次电脑重启后,之前配置过的阿里云盘的WebDav协议还需要重新配置。
于是,我们可以设置一个自动任务。
点击开始菜单,搜索“任务计划程序”,
先点击任务计划程序库,再点击最右边的新文件夹,键入一个名称后,左边会出现创建的文件夹。
选中刚创建的文件夹,然后在最右侧点击创建基本任务,然后名称可以自定义一个,这里我写了tmp,点下一步。
触发器中,根据我们的需求,这里选择计算机启动时,
操作选启动程序,然后点下一步,就可以选择具体的程序
点击浏览按钮,将写的脚本选中。如果脚本只能在对应的当前目录下执行,可以将对应的目录路径粘贴到“起始于”后面的方框中。
点击下一步,最后点击完成。
完成后的任务状态时这样的:
属于任务还没有执行,需要重启后才能生效。
也可以选中相应的任务,点击右侧的运行。
到这里,我们可以修改下之前添加的任务,选中右侧的属性,切换为下面这样的:
然后就可以重启电脑看看这个任务有没有自动运行了。
(2)Ubuntu
本篇教程基于Ubuntu18,其他版本的若有差异,请自行微调。
2.1 安装myBase
下载Legacy Version Downloads的linux版本,下载7.3.5版本。
破解文件下载链接:https://pan.baidu.com/s/1ZzDO0RMB2MsWLAC2EOm1lA 提取码:qvqq
用破解文件myBase替换解压目录中的myBase即可完成破解。
终端运行命令,打开软件:
./myBase.run &
点工具栏中的“帮助-产品注册”,在用户名和注册码那两栏,随便输入什么字符都是可以的。完成注册工作。
2.2 配置阿里云盘WebDav
这边我们采用docker的方式。
docker run -d \
--name=webdav-aliyundriver \
--restart=always -p 8080:8080 \
-v /etc/localtime:/etc/localtime \
-v /etc/aliyun-driver/:/etc/aliyun-driver/ \
-e TZ="Asia/Shanghai" \
-e ALIYUNDRIVE_REFRESH_TOKEN="your refeshToken" \
-e ALIYUNDRIVE_AUTH_USER_NAME="admin" \
-e ALIYUNDRIVE_AUTH_PASSWORD="admin" \
-e JAVA_OPTS="-Xmx1g" zx5253/webdav-aliyundriver
这里,强烈建议ALIYUNDRIVE_AUTH_USER_NAME和ALIYUNDRIVE_AUTH_PASSWORD修改成你自己的用户名和密码。
2.3 挂载阿里云盘到本地
2.3.1 davfs挂载方式
这种方式在后来的使用过程中发现,挂载的云盘经常崩溃,所以可以直接看下一节。
sudo apt install davfs2 -y
sudo mkdir -p /mnt/aliyundrive
sudo mount -t davfs -o noexec,uid=1000,gid=1000 http://localhost:8080 /mnt/aliyundrive
需要输入用户名和密码,用户名和密码是之前写的ALIYUNDRIVE_AUTH_USER_NAME和ALIYUNDRIVE_AUTH_PASSWORD。
挂载后效果:
最后将这个路径加入到文件管理的快捷路径中。
电脑重启后,之前挂载到/mnt/aliyundrive目录的云盘又无法访问到了。
因此,需要将之前执行的挂载命令加入到开机启动,同时还要默认输入账号和密码。
(1)默认输入用户名和密码
修改/etc/davfs2/secrets文件,首先将权限设置为666
sudo chmod 666 /etc/davfs2/secrets
然后编辑该文件,参考
在最后加上下面一行,username和passwd还成自己的用户名和密码即可。
http://localhost:8080 username passwd
(2)添加开机启动
,我们在/etc/systemd/system下创建mnt-aliyundrive.mount文件,将文件的权限设置为666,
sudo touch /etc/systemd/system/mnt-aliyundrive.mount
sudo chmod 666 /etc/systemd/system/mnt-aliyundrive.mount
然后编辑该文件,并写入如下内容:
[Unit]
Description=Mount unit for aliyun drive, revision 001
[Mount]
What=http://localhost:8080
Where=/mnt/aliyundrive
Type=davfs
Options=noexec,uid=1000,gid=1000
[Install]
WantedBy=multi-user.target
然后退出编辑,将文件权限重新改成644
sudo chmod 644 /etc/systemd/system/mnt-aliyundrive.mount
启用:
sudo systemctl enable mnt-aliyundrive.mount
启动并验证:
sudo systemctl start mnt-aliyundrive.mount
sudo systemctl status mnt-aliyundrive.mount
注意,新增的这个文件名必须是mnt-aliyundrive.mount,参照挂载的绝对路径来命名该文件,否则会报下面这样的错误:
● aliyun.mount - Mount unit for aliyun drive, revision 001
Loaded: error (Reason: Invalid argument)
Active: inactive (dead)
Where: /mnt/aliyundrive
What: http://localhost:8080
2月 23 15:45:52 hihan systemd[1]: aliyun.mount: Where= setting doesn't match unit name. Refusing.
2月 23 15:45:53 hihan systemd[1]: aliyun.mount: Where= setting doesn't match unit name. Refusing.
2月 23 15:46:08 hihan systemd[1]: aliyun.mount: Where= setting doesn't match unit name. Refusing.
2.3.2 使用rclone挂载
安装rclone
curl https://rclone.org/install.sh | sudo bash
配置rclone
rclone config
输入n,提示输入name,随意键入任意字符,这里我们输入aliyundrive,
然后会让你选择一种存储去配置,我们选择WebDav来配置,然后按照指示继续键入。
新建目录,挂载位置为/mnt/aliyundrive
sudo mkdir -p /mnt/aliyundrive
rclone mount的使用帮助可以使用rclone mount --help来查看。
我们这里直接按照开机自启动的写法,通过mount的方式:
首先,将/usr/bin/rclone链接到/sbin/mount.rclone,将rclone作为一种fstype。
ln -s /usr/bin/rclone /sbin/mount.rclone
然后我们在/etc/systemd/system下创建mnt-aliyundrive.mount文件,将文件的权限设置为666,
sudo touch /etc/systemd/system/mnt-aliyundrive.mount
sudo chmod 666 /etc/systemd/system/mnt-aliyundrive.mount
然后编辑该文件,并写入如下内容:
[Unit]
Description=Rclone Mount unit for aliyun drive, revision 001
After=network-online.target
Before=remote-fs.target
[Mount]
What=aliyundrive:/
Where=/mnt/aliyundrive
Type=rclone
Options=rw,allow_other,vfs-cache-mode=full,config=home/mi/.config/rclone/rclone.conf,cache-dir=/tmp/aliyundrive,uid=1000,gid=1000
[Install]
WantedBy=multi-user.target
这里面有几个注意的地方:
What内容的aliyundrive是之前配置rclone时设置的name,冒号后面的子目录如果没有指定,可以用/表示;
rclone.conf的位置,可以通过命令rclone config file查询到;
uid=1000,gid=1000保证当前用户可以访问对应的挂载目录。
然后退出编辑,将文件权限重新改成644
sudo chmod 644 /etc/systemd/system/mnt-aliyundrive.mount
启用:
sudo systemctl enable mnt-aliyundrive.mount
启动并验证:
sudo systemctl start mnt-aliyundrive.mount
sudo systemctl status mnt-aliyundrive.mount