写在前面

实现本文提到的所有功能,只需要一个云服务器(配置无所谓)和一个阿里云盘,还有自己的电脑即可。如果你有这个配置,那么不妨看看这篇文章。多图警告⚠

之前阿里云盘不是火起来了嘛,我也用了阿里云盘好久,感觉还是挺不错的(除了一些特殊的文件被和谐了以外……),而且新的玩法也层出不穷。这篇文章将介绍 如何以阿里云盘为核心,实现以下功能:

  1. 基于阿里云盘OneManager 搭建网盘外链分享程序用于不限速文件分享和博客图床。
  2. 使用CloudDrive 将阿里云盘本地化,用于搭建PLEX影音库。
  3. 使用Zerotier 作为VPN实现P2P内网穿透,同时使用云服务器 作为moon节点加速打洞。

总结一下,它们相互之间的关系可以用下面这张图来表示:(有点潦草,大佬轻喷)

网盘并不是完全可靠的。首先重要文件千万不要放网盘里!就我上面的使用而言,图床还好,毕竟这些图片没什么大问题,阿里不可能随便和谐。但是真要搭建影音库的话,还是得上大硬盘甚至NAS,因为电影等可能涉及到版权问题,阿里删不删说不清。

OneManager搭建网盘目录

前置步骤:建议安装宝塔面板,装好LNMP环境(推荐使用Nginx)。下面以宝塔面板上的操作为演示。

  1. 点击网站,点击添加站点,去创建一个网站:

  2. 添加站点,填入自己的域名(二级域名任取,等会去解析),无需数据库,PHP版本选择现有的就行:

  3. 进入创建网站的根目录,将下面的压缩包放进去并解压到该根目录。

    如果github下载不是很给力就直接点击这里下载

    解压后大概就是这样:(注意目录)

  4. 权限改写为777

  5. 添加伪静态。在网站->伪静态 处写入:(这是Nginx的伪静态规则,Apache的不一样)

    1
    rewrite ^/(?!.well-known)(.*)$ /index.php?/$1 last;

  6. 域名解析。将二级域名解析到你的服务器ip:

  7. 打开你设置的域名,初始化OneManager即可(这个照说明着做就行了)。

  8. OneManager挂载阿里云盘。OneManager挂载阿里云盘需要使用refresh_token进行登录。下面演示如何获取refresh_token:

    进入上面的网站,点击进入移动端网页登录入口,全程调出开发者工具,登录:

    回到刚才的网站,解码,即可获得refresh_token。

    阿里云盘每次改密码后refresh_token都会改变,所以不建议经常改密码。

  9. 给域名添加SSL证书建立安全连接。

这也正好解决了阿里云盘部分文件格式不能分享的问题。图片的直链就可作为博客图床,因为阿里云盘是不限速的,所以图片加载还挺快的(应该……)。缺点是有的时候图片不是很稳定,偶尔会出现图片挂掉的情况。但若图片完好一会儿就能恢复。

阿里云盘搭建PLEX影音库

很简单,只需两步,有手就行。

阿里云盘挂载本地

  1. 下载cloud drive
  2. 进入cd,登录阿里云盘(建议使用refresh_token避免登录失效)
  3. 挂载为本地硬盘,盘符自定。

值得一提的是,挂载到本地后文件上传的速度(和网速无关)稳定在800MB/s,比在阿里云盘客户端上传文件的速度(5~6MB/s)快了不知道多少倍,不适合 用来传输大文件。(原因见下)

后补:不要被表面给迷惑了!这里文件似乎已经上传过去了,但实际上此时文件还不在阿里云盘里面。这里几百M/s是硬盘的文件连续读写速度,其原理应该是先把要传输的文件缓存在硬盘的一个临时空间里面,然后调用阿里云盘的上传接口一直上传直到传输完成,临时空间中的文件才会被删除,相当于让硬盘白白地读写了一次。

Plex获取云盘影音

打开plex media server,在添加媒体库处选择阿里云盘的路径即可。

PLEX使用注意事项

使用PLEX的关键在于让它能够很好的识别或刮削到正确的影音信息。

电影库

PLEX电影信息的数据库为TMDB 。这个数据库由所有用户共同维护,所以电影信息比较全面,即使是刚上映的电影也有比较全的信息(评论、评分当然还暂时没有)。一般我们只需要将将电影名作为文件名即可被正确识别

电脑端效果:

iPad端效果:

看得出来PLEX对电影的支持还是很好的。


音乐库

但是PLEX对音乐的支持就不是那么好了,特别是华语。这时我们需要自己给音乐打标签。

一般我们下载下来的歌曲都是打好标签的,所以这样就没有多麻烦了。我们只需要爬取歌词即可。推荐下面两个软件2,结合使用。

  1. MP3tag 。可以批量地给音乐打上专辑标签。点击下载
  2. 音乐标签 。可以从网易云批量地爬取歌词,且带翻译。点击下载

PLEX上推荐添加一个插件wangyiyun ,就可在添加音乐时根据音乐标签刮削到相关的信息。

并且,PLEX有众多专门的音乐播放器app(官方和民间的都有),极大提高了PLEX音乐库的体验。下面展示iPhone端二者的效果:(需求:音乐主要在手机上听,且一般都在外网使用,下图手机开流量已在外网下)

左为PLEX自带播放器,右为Prism播放器。实际体验Prism更为丝滑。

上面的介绍略显简陋,之后我还打算写一篇文章来系统总结一下自己PLEX的使用,有生之年吧……

Zerotier内网穿透

  1. 在需要使用的设备上都下载Zerotier。

    苹果设备需要国外的账号下载Zerotier,参考教程

    滑稽的是,注册国外账号必须要ios设备,而在ios设备上注册国外账号需要梯子,但国区app store没有梯子……这就好比是先有鸡还是先有蛋的问题。

  2. 前往Zerotier官网注册一个账号并添加一个组网。

  3. 所有设备均连接到该组网下,即可实现设备间的通讯。

  4. 利用好自己的云服务器,将其作为moon节点进行加速。

搭建moon服务器节点的推荐教程:

至此,我们在外网下也可以访问到本机的Plex服务器——这样就可以随时随地使用自己的音乐库了(内网穿透的主要需求)。 另外,Zerotier用来和朋友点对点Minecraft联机还挺不错的,延迟很低,配合服务器管理模组食用,体验绝佳。