资源与Sonolus资源定位器(SRL) - ReiKohaku/Sonolus-wiki-zh_cn GitHub Wiki

资源

资源相关的话题。

资源

资源是Sonolus可以理解和使用的文件,用于动态更改其外观和行为。 例如,关卡的封面图像、引擎配置、皮肤纹理等。

每个资源都有一个类型(例如LevelCover)和一个哈希值。类型与哈希值一起唯一地标识资源。 资源文件使用SHA1算法计算哈希值。

JSON资源使用GZip算法压缩存储。

SRL

SRL(Sonolus资源定位器)用于服务器端,以便Sonolus定位资源。 SRL的形式如下:

{
    "type": "LevelCover",
    "hash": "...",
    "url": "https://..."
}

至少需要提供hashurl中的一个,如果可能,请都提供。 如果url以字符“/”开头,它将被视为到服务器地址的相对路径。

加载

Sonolus将按照以下逻辑从SRL加载资源:

第1步

如果提供了hash,Sonolus将在本地存储库中查找由类型和hash标识的确切资源文件。

如果存在,则使用。

第2步

如果提供了url,Sonolus将在缓存中查看是否缓存了特定的url

如果存在,尚未过期,并且始终重新验证选项未打开,则使用缓存的资源文件。 如果存在但已过期或始终重新验证选项已打开,则会向url发送一个HTTPHEAD请求,并使用Last ModifiedETag与服务器确认其仍然有效。如果确认仍然有效,则使用缓存的资源文件。

第3步

Sonolus将向url发送一个GET请求,以下载资源,计算其散列值,将其保存到本地存储库,并将其缓存1天。