Aller au contenu

Tape un mot pour chercher dans les pages.

↑↓ Choisir↵ OuvrirÉchap Fermer

Référence

Envoyer le contenu d'un fichier à Host, adressé par son empreinte SHA1, avant de créer un déploiement.

Un fichier s’envoie par son empreinte SHA1. Host ne stocke jamais deux fois le même contenu pour une organisation : tu n’envoies que les fichiers que Créer un déploiement signale comme manquants.

POST /v2/files

SHA=$(sha1sum index.html | cut -d' ' -f1)
curl -X POST https://api.host.hgdc.ch/v2/files \
-H "Authorization: Bearer $VERCEL_TOKEN" \
-H "x-vercel-digest: $SHA" \
-H "Content-Type: application/octet-stream" \
--data-binary @index.html

En Node.js, calcule l’empreinte avant l’envoi :

import { createHash } from "node:crypto"
import { readFile } from "node:fs/promises"
const bytes = await readFile("index.html")
const sha = createHash("sha1").update(bytes).digest("hex")
await fetch("https://api.host.hgdc.ch/v2/files", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.VERCEL_TOKEN}`,
"x-vercel-digest": sha,
"Content-Type": "application/octet-stream",
},
body: bytes,
})

En-têtes

En-têteValeurRequis
AuthorizationBearer ah_…Oui
x-vercel-digestEmpreinte SHA1 du contenu, en hexadécimal, 40 caractèresOui. x-now-digest est aussi accepté
Content-Typeapplication/octet-streamRecommandé

Corps

Le contenu brut du fichier, 20 Mo au plus.

Réponse

Réponse 200 avec un objet vide, {}.

Erreurs

StatutCodeCause
400bad_requestEn-tête x-vercel-digest absent ou mal formé
400invalid_digestLe contenu ne correspond pas à l’empreinte annoncée. Recalcule le SHA1
413file_too_largeLe fichier dépasse 20 Mo

Limites

L’envoi de fichiers a son propre débit : 6 000 par minute, avec des rafales de 3 000 par clé. Un site Next.js compte souvent des milliers de fichiers : envoie-les en parallèle, mais sans dépasser ce débit. Voir Limites.