assetIndex,
поэтому файлы не дублируются в S3 и на компьютере игрока.
Структура S3
launcher/servers/{serverId}/manifest.json не должно быть путей
assets/**. Assets manifest строится относительно самой папки assets,
поэтому его пути начинаются с indexes/ и objects/.
Контракт API
POST /api/launcher/builds/profile возвращает четыре независимых ресурса:
launcher/servers/{serverId}/releases/{releaseId}/assets/{assetIndex}/manifest.json, проверяет наличие
indexes/{assetIndex}.json и вычисляет revision из отсортированного списка
путей, размеров и SHA-256.
Для получения временных ссылок клиент вызывает:
Локальное хранение
{storageRoot}/assets/{assetIndex} через
--assetsDir и placeholder ${assets_root}. Поле profile.assetDir
сохраняется в формате профиля для совместимости, но реальное расположение
задаётся отдельным assets descriptor.
{storageRoot} настраивается пользователем. Поэтому assets не обязаны
занимать место на системном диске и переносятся вместе с остальными игровыми
данными.
Подготовка выполняется последовательно:
Генерация manifest
Для подготовленной сборки Architechnica используется скрипт:servers/4/manifest.jsonбез assets;assets/1.7.10/manifest.jsonтолько для indexes и objects.
