前记

之前用过很多记笔记的方法,有想过博客等博客平台记录,但后来放弃了,毕竟笔记和博客区别很大。后来用过印象笔记,但是穷逼版账户限制了每月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文件

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_webdav

myBase-Desktop-Ver710-Pro-Setup.exe是安装文件,安装完成后,先不要打开,用解压后的myBase.exe替换安装目录中的myBase.exe即可完成破解。

破解完成后,点工具栏中的“帮助-产品注册”,在用户名和注册码那两栏,随便输入什么字符都是可以的。

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_重启_02

 上面的内容是提炼出来的破解方法,也可以自行百度、Google。

myBase记录笔记以后,保存的文件主要是下面三个

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_重启_03

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}`);

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_数据库_04


 第二步、实现阿里云盘的webdav协议

这里我选择github中提供的jar包来运行的。

下载github提供的jar包,也可以自己编译生成。https://github.com/zxbu/webdav-aliyundriver#jar%E5%8C%85%E8%BF%90%E8%A1%8C

下载后,在本地找一个目录存放,这里我放在下面的目录

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_数据库_05


 我在这个目录下新建了一个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/

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_用户名_06


 输入命令中设置的用户名和密码,如果没有修改,用户名和密码就都是admin

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_用户名_07


 登录后,如下所示:

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_用户名_08


 一层层的打开后,可以看到我存储在云端的笔记数据库

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_数据库_09


第三步、将阿里云盘挂载为本地磁盘

打开安装后的RaiDriver,点设置,可以选择语言为中文简体,并添加到启动项

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_数据库_10


 然后点添加按钮,按照下图来配置,服务类型选择NAS-WebDav

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_重启_11

 虚拟驱动器可以自定义盘符和名称,去掉地址后面方框的勾选,即取消安全连接,地址写localhost或者127.0.0.1,端口、账号、密码是之前在配置阿里云盘的WebDav协议时设置的。

点击连接按钮后,在我的电脑中打开相应的虚拟驱动器。

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_数据库_12

第四步、设置开机自启动

第三步中已经设置了RaiDriver的自启动了,但是每次电脑重启后,之前配置过的阿里云盘的WebDav协议还需要重新配置。

于是,我们可以设置一个自动任务。

点击开始菜单,搜索“任务计划程序”,

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_阿里云_13

 先点击任务计划程序库,再点击最右边的新文件夹,键入一个名称后,左边会出现创建的文件夹。

选中刚创建的文件夹,然后在最右侧点击创建基本任务,然后名称可以自定义一个,这里我写了tmp,点下一步。

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_webdav_14

触发器中,根据我们的需求,这里选择计算机启动时,

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_数据库_15

 操作选启动程序,然后点下一步,就可以选择具体的程序

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_webdav_16

 点击浏览按钮,将写的脚本选中。如果脚本只能在对应的当前目录下执行,可以将对应的目录路径粘贴到“起始于”后面的方框中。

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_webdav_17

 点击下一步,最后点击完成。

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_webdav_18

 完成后的任务状态时这样的:

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_重启_19

 属于任务还没有执行,需要重启后才能生效。

也可以选中相应的任务,点击右侧的运行。

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_阿里云_20

到这里,我们可以修改下之前添加的任务,选中右侧的属性,切换为下面这样的:

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_数据库_21

 然后就可以重启电脑看看这个任务有没有自动运行了。

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_数据库_22

(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。

挂载后效果:


阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_webdav_23

 最后将这个路径加入到文件管理的快捷路径中。


阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_阿里云_24

电脑重启后,之前挂载到/mnt/aliyundrive目录的云盘又无法访问到了。

因此,需要将之前执行的挂载命令加入到开机启动,同时还要默认输入账号和密码。

(1)默认输入用户名和密码

修改/etc/davfs2/secrets文件,首先将权限设置为666

sudo chmod 666 /etc/davfs2/secrets

然后编辑该文件,参考


阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_webdav_25

在最后加上下面一行,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


阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_数据库_26

 启动并验证:

sudo systemctl start mnt-aliyundrive.mount
sudo systemctl status mnt-aliyundrive.mount


阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_用户名_27

注意,新增的这个文件名必须是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

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_用户名_28

 输入n,提示输入name,随意键入任意字符,这里我们输入aliyundrive,

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_用户名_29

 然后会让你选择一种存储去配置,我们选择WebDav来配置,然后按照指示继续键入。

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_阿里云_30

 新建目录,挂载位置为/mnt/aliyundrive

sudo mkdir -p /mnt/aliyundrive

rclone mount的使用帮助可以使用rclone mount --help来查看。

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_重启_31

我们这里直接按照开机自启动的写法,通过mount的方式:

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_webdav_32

首先,将/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

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_用户名_33

 启动并验证:

sudo systemctl start mnt-aliyundrive.mount
sudo systemctl status mnt-aliyundrive.mount

阿里的maxcommute底层是存储在hdfs吗 阿里云 mybase_重启_34