0%

用于外链的资源库构建

Background

在升级本博客的 hexo 和主题之前,是曾经搞过一个用 Aplayer 实现的外链播放器的,但因为当时播放过程会被在博客中的页面跳转而刷新页面,导致播放被打断而暂停,体验较差,所以在升级主题版本之后一直没有添加回来。在之后的某次逛 Github 的时候,偶然发现 PJAX 可以实现博客内页面跳转使用 AJAX 不刷新页面。于是又再次把 Aplayer 添加回来。

有了播放器,最重要的还是要有音乐,有歌曲。原本想着简单地从网上那些外链播放搜索网站,搜索抓取从各大音乐平台的外链,确实能找到,当时也能用,不过好像一般都会有有效期,过了一天就不能用了。为此,参考别人在 GitHub 开启 Repo 作为图床的想法,我也打算在 GitHub 开个 Repo 来存放图片或音频资源,提供外链。

Methods

GtiHub Repo

想法比较简单,在 GitHub 上面开一个公共的 Repo,通过其单个文件下载的链接作为外链使用。

以创建的 yeung66/resources 仓库为例,我在 music 文件下面的音乐文件,其下载链接为 https://raw.githubusercontent.com/yeung66/resources/master/music/恋爱为何物.mp3,其映射关系还是很直接很简单的。当场生成放到博客测试一下,也能够正常使用,没有什么问题。

然而过了一会儿我在手机上访问时,就发现播放器出现异常,歌曲无法正常播放,在手机上直接访问了一下音乐的外链,无法访问。上网一看才发现,域名 raw.githubusercontent.com 被 DNS 污染了,没有梯子的话不能正常访问,而我在电脑上一直挂着梯子,而且这个网址也在我的 PAC 上面(好像还是我手动添加的),而手机非需要使用时都不会开代理工具。考虑到我的多数访客并不会挂着梯子进来,只能放弃这个方法。

Gitee Repo

既然 GitHub 的资源域名被墙了,那就考虑使用国内的替代品 Gitee 码云。思路也还是一样的,来一个公共 Repo,通过文件的下载链接作为外链使用,大概映射关系为 music 文件夹下的 a.mp3 的下载链接为 https://gitee.com/yeungyeah/resources/raw/master/music/a.mp3。放到博客的播放器中可用,似乎没有问题。

然而今天手机打开测试又再次播放失败了,在电脑上换了电脑测试访问,发现原因居然是访问的资源大小超过 1M 时需要登录,所以使用外链播放时,如果没有登录过的话,会不断重定向到登录链接,然后就一直失败,真的小气。(我专门到 GitHub 上面试了一下,不需要登录也可)。之前我在上去创建仓库的时候,登陆过,所以测试时一起正常。

GitHub / Coding Pages

突发奇想,虽然 GitHub 中 Repo 的文件直接下载链接被 DNS 污染了,但是它提供的 GitHub Pages 是可以正常访问的,而其中的静态文件也是能够直接访问的,那干脆就直接将他们当成 Pages 发布,这样就可以直接使用了,音乐文件甚至能够直接链接打开播放(直接通过 Github Repo 的文件下载链接是可以下载但是不能在线播放的)。在 GitHub 开启了 Pages 测试一下,能访问,但速度实在感人,播一秒卡两秒。然后想到了现在博客正在托管的 Coding.net 平台(自换域名之后我将所有的解析到解到这里了,国内访问速度满分,但好像 Google AdSense 访问不到了),打开速度非常满意。

于是,我将我的资源 Repo 传到了 Coding.net 平台,开启 Pages 服务,提供资源外链使用。这两者还可以绑定域名,我就顺手绑了个二级域名,爽得直接起飞。

Thinking

自说自话一下。

其实感觉原本是个很简单的问题,但断断续续搞了差不多三四个晚上应该有,最主要的原因还是考虑得不够细致,测试得不够细致,导致总有些问题没有考虑到,疏忽了。过个一天才发现问题,才重新找原因,想解决方法。

佛系求打赏