世界包的近代化改造手术日志

0x00 前言

这是一种使用对象存储以及内容分发网络为基础的一种特殊模组包,使用改造模组无需DM服务器自身提供模组资源加载,所以有效的缓解Fvtt系统加载模组包过程中的网络带宽压力,提升加载速度。


0x01 原理

Fvtt世界包的图片加载方式可以采用相对路径和绝对路径,在默认设置中为相对路径,一般为”world/Curse of Strahd/scene/xxx.jpg”。

相对路径加载方式需要PC从DM服务器上读取素材,PC数量越多,对DM服务器加载压力就越大。由于DM服务器的总带宽是有限的,所以多人同时读取时会显著降低速度,让系统产生不稳定甚至掉线的情况。

所以我们可以将图片交给一个特殊的空间,使用绝对路径进行图像加载,以提升整体效率。同时这个方案也可以使原本无法修改按量计费的轻量云主机获得一部分按量计费的能力,以提升整体加载速度的功效。


0x02 费用情况和条件

流量费

  • 使用内容分发网络+对象存储流量费约为0.15元/G
  • 若单纯使用对象存储流量费为0.5元/G

资源费

  • 空间费用:一个正常的模组,拥有2GB的资源包一个月空间费用大约为0.3元/月
  • 请求费用:正常一个月的4-8场团,大约请求费用为0.1-0.2元/月
  • 从存储桶内删除资源可以停止空间费用和请求费用的计费。

特殊条件

  • 若内容分发网络+对象存储需要进行网站备案
  • 单纯使用对象存储则不需要网站备案

0x03 开始进行近代化改造

1、我们需要创建一个对象存储桶,选择【标准存储】类型,创建的对象存储桶会给你一个默认的域名【桶名-序号.cos.区域.myqcloud.com】。

【可选】创建内容分发网络配置信息,并在回源地址配置为对象存储回源。此时你不在使用上方的对象存储域名,改为使用内容分发网络的域名。

【可选】配置内容分发网络的缓存信息,将所有类型配置为强制缓存,周期为365天。
2、修改对象存储的【安全管理】中的【跨域访问CORS设置】,来源框输入【*】,并且允许所有请求

【可选】如果配置了内容分发网络则在【高级配置】中,配置【HTTP响应头配置】,输入参数【Access-Control-Allow-Origin】并取值为【*】
2、然后我们需要下载对象存储浏览工具,并在电脑上安装。
3、使用我们的账号登录这个存储桶,然后将【/world】目录拷贝到对象存储桶根目录下

4、然后我们需要修改FVTT主机上,世界包的DB文件,一般修改actors、scenes、journal、items这四个DB文件。在查找目标输入【”worlds/世界包名称/】、在替换目标中输入【”http://域名/worlds/世界包名/】。(注意这两个框前面都有一个半角”)

5、最后将修改过的DB文件替换到服务器上原来的世界包中即可使用。


0x06 近代化模组改造项目

为了解决新人Dm加入Fvtt系统的怀抱,尚未能熟练备团,但却想尝试Fvtt带来的全新体验。故本项目将会提供一定数量的One Shot成品汉化模组包,用于测试使用。

详情请见:https://trpg.peatsuki.com/zh/resource/cdwproject