Free Arch:利用七牛云加速文件下载
Free Arch:不断探索免费的边界。
这几天玩了一下 App 开发,深深地感受到了 Web 技术和 App 技术真是有天壤之别。虽然,借助 React Native,可以填补一些鸿沟,但从开发环境的准备到发布上线,还是特别的不同。尤其在上线方面,App 上线真是繁琐得多。
首先折腾安卓吧,由于网络问题和机器性能问题,到目前还没有搞定本地的编译问题。不过,利用 GitHub Actions(GitHub Actions 真的很赞,免费提供强大的 runner。之前有一个超级耗时的静态站点生成项目,试过 Netlify、Vercel 等等著名厂商的工具链,全部超时,只有 GitHub Actions 能够成功完成,实力雄厚),成功地通过 CICD 的方式,实现了提交代码自动编译,自动签名并将 apk 文件发布到网上。这样有几个好处:
即使没有电脑,借助网页版编辑器也能写 App 并发布了。
方便 App 后期做自动更新。
免费和自由(当然,愿意花钱的话,还可以实现自动发布到市场)。
源代码在 https://github.com/Jeff-Tian/jeff-tian-app,利用 Actions 编译、打包 aab 文件、生成 apk 文件、完成 zip 对齐、签名一条龙,然后利用 gh-pages 将最终可以直接下载安装的 apk 文件发布在 https://app.jeff-tian.jiwai.win。
昨天在《Free Arch【已解决】七牛云上传 Cloudflare 证书》里聊到了,尽管使用了 Cloudflare CDN 对 jiwai.win 域名做了加速,但实测下来,仅限于 Web 页面的加速,32兆的 apk 文件下载,居然要1到2个小时,不能忍受。估计是其在国内的 CDN 结点数量问题,因此想到了使用七牛云再来加速一下 apk 的文件下载速度。
但是这其中还是有些坑要踩的,所以有必要记录下来,供以后的自己和做同样事情的人们参考。
第一个坑是上传 https 证书的,昨天已经解决。
Free Arch【已解决】七牛云上传 Cloudflare 证书
第二个坑是,我想当然地认为,对于 apk 文件下载,应该使用七牛云的文件分发模式 CDN。于是我建了一个 files.pa-ca.me 域名,设置了下载分发模式:
然而,测试了几次,虽然不需要1到2小时了,但仍然比较慢,需要半小时左右:
接着,我又建立了 cdn.pa-ca.me 这个 CDN 加速域名,使用了图片小文件场景:
再次做了几次测试,发现达到预期的目的,下载同样的文件,只需要分钟级别的时间了:
好了,这就是利用七牛云加速文件下载踩过的一些坑了。
最后总结一下,如果文件托管在 Cloudflare 站点上,在国内的下载速度仍然会很慢,可以再次使用七牛云加速。如果 Cloudflare 站点启用了强制 https,那么需要先搞定 HTTPS 证书的问题。如果不想上传证书,也可以使用七牛云提供的 DV 免费证书,但是有一段审核期,白天比较快,15分钟不到,晚上可能会需要1个小时。
然后,在创建 CDN 加速域名时,要做好如下配置:
回源要启用 HTTPS(基于前面的假设,源站强制了 HTTPS 访问)
要使用图片小文件场景
最后,下载速度可能不同的网络表现并不一样,以下是我这里的网络下载同一文件的速度简略对比:
Cloudflare:https://app.jeff-tian.jiwai.win/jeff-tian-release.apk ,2小时
七牛云下载分发场景:https://files.pa-ca.me/jeff-tian-release.apk,半小时
七牛云图片小文件场景:https://cdn.pa-ca.me/jeff-tian-release.apk,2-3分钟