Mac阿里云盘挂载本地

Mr.he...大约 6 分钟webdev

前言

使用webdav协议将阿里云盘挂载本地,可以让阿里云盘变身为webdav协议的文件服务器。基于此,可以把阿里云盘挂载为Windows、Linux、Mac系统的磁盘,可以通过NAS系统做文件管理或文件同步和更多玩法,本篇主要是针对Mac系统的教程。

挂载成功图片

准备工作

  1. Java环境

    本次使用Jar包运行,因此需要Java环境,如何部署Java环境此处不进行赘述,网上很多教程,打开终端使用java -version命令确认是否有Java环境。

    Java环境确认

  2. webdav-aliyundriver

    感谢zxbu大佬开源的项目,点击下载项目open in new window,并阅读其中的readme.md对该项目进行熟悉。

    下载页面

    建议自己下载源码编译,以获得最新代码,如果是下载的源码,建议打开后,对本地文件夹进行修改

  3. CloudMounter

    可使用WebDAV协议挂载阿里网盘,选择他主要是觉得比较好用,也可以选择其它的,下载链接open in new window

    image-20211227152459255

开始配置

获取refreshToken

  1. 先通过浏览器(建议chrome)打开阿里云盘官网并登录:https://www.aliyundrive.com/drive/open in new window
  2. 登录成功后,按F12打开开发者工具,点击Application,点击Local Storage,点击 Local Storage下的 https://www.aliyundrive.com/,点击右边的token,此时可以看到里面的数据,其中就有refresh_token,把其值复制出来即可。(格式为小写字母和数字,不要复制双引号。例子:ca6bf2175d73as2188efg81f87e55f11)
  3. 第二步有点繁琐,大家结合下面的截图就看懂了 image

该步参考项目地址open in new windowreadme.md中的内容。

运行

  1. 找到下载或打包好的jar包,打开终端,进入jar包位置的路径,然后使用下面的命令运行项目。

    # 这里的webdav.jar就是下载或打包好的jar包名称,不一致修改为一致即可
    java -jar webdav.jar --aliyundrive.refresh-token="your refreshToken" 
    

image-20211227151921835

  1. 打开浏览器查看是否正常

    image-20211227152154666

第一次打开会要求输入用户名和密码,默认都是admin。

image-20211227165530623

用CloudMounter连接

打开CloudMounter,选择WebDAV,然后连接到阿里云盘,再打开访达页面就和我最开始的一样了。

image-20211227152632386

注意运行项目的终端窗口一直不要关闭,另外图中的用户密码默认也都是admin。

优化

开机自启动

要一直保持运行项目的终端窗口不能关闭,且不能开机自启动显然不够优雅,所以可以使用脚本命令设置为开机自启动。

  1. 建立脚本文件:webdav.sh

    # 进入到jar包所在文件夹位置
    cd /Users/hk/Documents/webdav 
    # "nohup XXX &"可以让你的命令在后台持续运行,终端关闭也没问题
    nohup java -jar webdav.jar --aliyundrive.refresh-token="dca09cb094cd487ba5f88ef5b5848fb3" &
    
  2. 设置开机自启动。

    首先打开"系统偏好设置-->用户与群组-->登录项",然后点击+,把webdav.sh文件加入到登录项即可。

    image-20211227153748641

关闭挂载服务

我们设置了开机自启动,当对源码进行更改后,需要停止服务,重新打包运行,那么就要先把项目进程关闭,可按以下操作。

方法一

  1. 打开终端,查找使用8080端口的进程名有哪些。

    # 查找使用8080端口的进程
    lsof -i tcP:8080 
    
  2. 找到其中java进程的pid,然后杀掉

    # 杀掉 583 进程
    kill 583
    

image-20211227154259947

对于shell语句不熟悉的,可以把查找进程这条命令也加入到webdav.sh中,然后在该脚本同目录下的nohup.out文件中会进行记录,这样需要停止服务的时候进去看下是那个进程就可以了。

方法二

还有个更简单的方法,打开活动监视器,然后搜索java就可以找到对应的进程并结束,我用上面的方法最主要的原因是一开始不知道该项目运行后的进程叫啥。

image-20211227204433101

更改本地文件夹

改一下这个本地文件夹,默认是在/etc/下,在Mac系统中可能会有权限问题。

  1. 更改源码

image-20211227145914311

  1. 打包

    image-20211227150052118

推荐有Java项目开发经验的搞。

更改端口号

一直在后台开启会占用8080默认端口号,我们在开发别的项目时,就很不方便,所以最好把端口号进行修改。

方法一

通过在application.properties配置文件中添加一行server.port=8000,修改成我们想要的端口号即可。

修改端口号

同时在这里也可以对登录的用户名和密码进行修改。

方法二

更简单的方法,直接在启动项目时,将server.port拼在后面

java -jar webdav.jar --aliyundrive.refresh-token="dca09cb094cd487ba5f88ef5b5848fb3" --server.port=8010
image-20211227202957434

自动化

退出终端

虽然我们已经优化为开机自启动了,但是开机后的终端运行webdav.sh脚本后,并不会关闭终端窗口并退出软件。因此这里我使用了Keyboard Maestro软件(以下简称KM)添加了自动化操作来关闭终端。

image-20220113130656853

挂载云盘

在实际使用过程中,我发现如果只是把CloudMounter设置为开机自启动,虽然在软件中设置了启动时自动挂载云盘,但实际上,因为webdav.sh脚本需要一定时间才能执行成功,所以会导致CloudMounter不能完成启动自动挂载云盘。

image-20220113132306824

这里也是使用了KM软件来完成等待一段时间后,再启动CloudMounter,此时webdav.sh脚本也已经运行成功,所以实现了启动就挂载好云盘,不用我们再去手动挂载了。

image-20220113131437548

有自动化启动CloudMounter软件,就不用设置CloudMounter自启动了,但记得要设置KM软件自启动。