Server: faster releases (cache hashes), per-version skip, longer signed-URL TTL
- gate.php : ETag now derived from size+mtime instead of md5_file($zip). Previously the gate hashed the entire 14 GB ZIP on every HEAD/GET call (including each of 8 parallel segments) → 30s-5min preparation lag for clients before the first byte. Now <1ms per request. - SignManifest : disk-backed cache for SHA-256 keyed by (path,size,mtime). Re-signing 5×14 GB versions used to take ~25 min, now ~1s when nothing changed. New "Force re-hash" toggle in admin to ignore the cache. - versions.php : per-row "🔁 Hash" button to sign a single version, plus a "⚙ Hash" dropdown to toggle hashAlgorithm:none for builds where the user accepts skipping client-side verification (manifest stays signed Ed25519, only the per-ZIP SHA-256 verification is bypassed). - DownloadUrl.php : signed-URL TTL bumped 1h → 6h to cover slow ADSL users who need >1h to finish a 14 GB download. - .gitignore : track server/builds/.htaccess + gate.php (still ignore the actual ZIP/exe binaries). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -70,8 +70,10 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
elseif ($action === 'sync_launcher') {
|
||||
require_once "$root/tools/SignManifest.php";
|
||||
$signer = new \PSLauncher\Tools\SignManifest($root);
|
||||
$result = $signer->run('launcher');
|
||||
$message = "Sortie du script (scope: launcher) :\n" . implode("\n", $result['log']);
|
||||
$force = !empty($_POST['force']);
|
||||
$result = $signer->run('launcher', $force);
|
||||
$forceLabel = $force ? ' [FORCE: cache ignoré]' : '';
|
||||
$message = "Sortie du script (scope: launcher{$forceLabel}) :\n" . implode("\n", $result['log']);
|
||||
if (!$result['ok']) $messageType = 'error';
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
@@ -159,6 +161,9 @@ Layout::header('Launcher', 'launcher');
|
||||
<?= Layout::csrfField() ?>
|
||||
<input type="hidden" name="action" value="sync_launcher">
|
||||
<button class="btn btn-primary" type="submit">🔁 Hasher le launcher + signer</button>
|
||||
<label style="margin-left:12px;font-size:12px;color:#888" title="Recalcule le SHA-256 même si l'exe n'a pas changé.">
|
||||
<input type="checkbox" name="force" value="1"> Force re-hash
|
||||
</label>
|
||||
</form>
|
||||
|
||||
<?php if ($launcher): ?>
|
||||
|
||||
Reference in New Issue
Block a user