接着之前搭建音乐库的一个文章,这里说一下如何挂载阿里云盘作为音乐文件夹。
如果你没有看过前篇的话,可以[点击这里](https://blog.thetbw.xyz/archives/build-a-music-library)
这里假设你看过前面的文章,环境基于ubuntu20,本来想写一下挂载onedrive的,但是国内直接访问 onedrive的速度属实有点慢,所以就讲一下阿里云盘吧。
---
首先登录你的服务器,安装 fuse
```shell
sudo apt-get install -y fuse3
```
然后就是安装 `aliyundrive-fuse`,这个软件可以把阿里云盘挂载到你的本地系统这是[项目地址](https://github.com/messense/aliyundrive-fuse)
可以在旁边 release 中找到对应的下载地址,,一般是名 `aliyundrive-fuse_0.1.7_amd64.deb` 这种的,ubuntu 用的是deb结尾的,前面是平台名称,一般是amd64,树莓派这种是arm芯片,就要选arm的。
我们可以右键复制链接,然后在服务器中使用 `wget` 下载
例如
```shell
wget https://github.com/messense/aliyundrive-fuse/releases/download/v0.1.7/aliyundrive-fuse_0.1.7_amd64.deb
```
国内有可能你的服务器下载的太慢,如果下载慢的话你可以用你自己本地的电脑下载,然后在xshell中使用命令 `rz` 来上传。
下载之后进行安装。
```shell
sudo dpkg -i aliyundrive-fuse_0.1.7_amd64.deb
#注意名称输入你自己实际的
```
安装好之后就没啥了,先去登录阿里云盘来获取你的 refresh_token ,这里需要使用 pc 网页版的,应为要用到控制台。登录成功之后按`f12`打开控制台 ,然后找到 console (控制台) 面板,输入下面的js脚本来获取token
```javascript
JSON.parse(localStorage.token).refresh_token
```
![20220225233107.jpg](https://s2.loli.net/2022/02/26/P8ZhjtiH3lGrcpk.jpg)
接着我们回到服务器挂载
我在music下创建一个文件夹用于挂载 阿里云盘
```shell
#创建挂载点
mkdir music/aliyun
#开始挂载,记得换成你刚才获得的token
aliyundrive-fuse -r '你的token' /home/ubuntu/music/aliyun
```
这时候你可以会挂载失败,提示下面的错误
> Error: fusermount3: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
这时候我们把 `use_allow_other` 打开就好
```shell
#打开配置文件
sudo nano /etc/fuse.conf
```
![image.png](https://s2.loli.net/2022/07/05/OkNHLhJoAxE4Zzg.png)
去点 `user_allow_other` 前的 `#` 号,使用 `ctrl+s` 保存 ,`ctrl+x` 退出,然后继续上一步的挂载操作,应该就可以成功了。
![20220225234545.png](https://s2.loli.net/2022/02/26/qBrTlG3D8hwcpb6.png)
现在基本上就完成的差不多了,我们使用 xftp 就可以看到我们挂载的阿里云盘了,在navidrome 中运行扫描也可以扫描到云盘中的音乐,不过需要注意的是,如果文件太多,这是扫描可能会有点慢,这个软件可惜的一点就是不能挂载某个文件夹,只能挂载整个云盘,不过我们其实可以通过链接的方式 链接某个文件夹到音乐库中,不过这里就先不讨论了。
最后说点其他的,我们现在的挂载程序不能退出,不然的话挂载就中断了,可以使用下面这个命令来让命令在后台执行,即使你关闭了 xshell
格式为 `nohup 命令 &`
例如
```shell
nohup aliyundrive-fuse -r '123' /home/ubuntu/music/aliyun &
```
这时候屏幕上会输入当前程序的 pid,命令会在后台执行,输出的内容会在`nohup.out`中
可以使用 `tail -f nohup.out` 来实时查看输出。
如果需要停止挂载,也就是关闭程序。使用 `kill` 加上程序的pid即可。
我们也可以通过下面这条命令或者 `pid`
```shell
ps -aux | grep aliyundrive-fuse
#关闭程序
kill 2819450
```
![20220225235808.png](https://s2.loli.net/2022/02/26/gzVsK8SOXU7vZFm.png)
> 这里2819450就是 pid
---
教程大概就是这些把,如果有什么疑问的话,欢迎在下面给我留言,如果有什么写的不够好,不够完善的,也欢迎提出你宝贵的意见。比心❤️
搭建一个属于自己的音乐库2,挂载阿里云盘