资源与Sonolus资源定位器(SRL) - ReiKohaku/Sonolus-wiki-zh_cn GitHub Wiki
资源
资源相关的话题。
资源
资源是Sonolus可以理解和使用的文件,用于动态更改其外观和行为。 例如,关卡的封面图像、引擎配置、皮肤纹理等。
每个资源都有一个类型(例如LevelCover
)和一个哈希值。类型与哈希值一起唯一地标识资源。
资源文件使用SHA1算法计算哈希值。
JSON资源使用GZip算法压缩存储。
SRL
SRL(Sonolus资源定位器)用于服务器端,以便Sonolus定位资源。 SRL的形式如下:
{
"type": "LevelCover",
"hash": "...",
"url": "https://..."
}
至少需要提供hash
和url
中的一个,如果可能,请都提供。
如果url
以字符“/
”开头,它将被视为到服务器地址的相对路径。
加载
Sonolus将按照以下逻辑从SRL加载资源:
第1步
如果提供了hash
,Sonolus将在本地存储库中查找由类型和hash标识的确切资源文件。
如果存在,则使用。
第2步
如果提供了url
,Sonolus将在缓存中查看是否缓存了特定的url
。
如果存在,尚未过期,并且始终重新验证选项未打开,则使用缓存的资源文件。
如果存在但已过期或始终重新验证选项已打开,则会向url
发送一个HTTPHEAD
请求,并使用Last Modified
或ETag
与服务器确认其仍然有效。如果确认仍然有效,则使用缓存的资源文件。
第3步
Sonolus将向url
发送一个GET
请求,以下载资源,计算其散列值,将其保存到本地存储库,并将其缓存1天。