先来理解一下一下原理,内容分为三大块,分别是存储服务、网关服务和同步服务。 存储和同步是完全分离的,同步程序可以脱离存储服务存在。但是网关服务往往会和存储服务一同使用。
存储顾名思义,用于存储镜像资源的,但存储并不限制任何类型任何介质。比如本地磁盘、云存储、块存储等等都是可以的。
另外很多云厂商提供了一定程度上的免费容量,羊毛党怎么可以错过这个呢?
当有了存储之后,那么怎么将资源发送给使用者呢?那么这个就是网关服务的用处。举几个简单的例子:
- 针对云存储来说,往往都是自带网关的,比如 OSS 的外网地址。但你也可以选择使用 CDN 作为网关来提供服务
- 针对本地存储来说,nginx 提供静态资源托管,那么他也是一个网关
- 网关也可以是代理服务器,比如 serverless 服务,接收到请求之后通过 304 转发到其他网关服务
同步服务就是定期将源站的内容同步回存储服务,从而能够对外提供服务。 同步程序不需要一直在运行,只需要隔一段时间运行一次即可,比如每天进行一次同步。
首先安装同步程序
deno install -A --unstable https://raw.githubusercontent.com/XGHeaven/mcm/master/mcm.ts
此时 mcm
会安装到你的终端下,运行如下命令即可将所有的内容同步到 /data/mcm/storage
下
mcm --storage-type fs --storage-options /data/mcm/storage 'mc:all' 'fabric:all' 'forge:all'
本同步程序暂时会按照 mcm.xgheaven.com 的目录结构同步,具体结构可以查看配置字符串。
目前支持两大存储服务:
fs
本地磁盘alioss
阿里云 OSS 对象存储
通过 --storage-type
指定,通过 --storage-options
指定参数,不同的服务有不同的参数配置,请通过 --help
查询。
CLI 提供了多种版本选择的能力,通过 关键字:版本选择器
的方式进行操作,关键字目前有如下:
mc
/minecrat
同步 minecraft 原生版本fabric
同步 fabric 相关服务forge
同步 forge 相关服务
而版本选择器简单来说有如下几种:
1.15.*
选择 1.15 的所有版本进行同步all
选择全部版本进行同步diff
仅仅选择未同步版本进行同步
更多帮助信息,请查看 mcm --help
针对文件系统,推荐使用 nginx 作为网关服务