Français
Français
Appearance
Français
Français
Appearance
Les tokens de téléversement signes sont des identifiants à durée limitee concus pour les téléversements côté client. Ils permettent aux navigateurs et applications mobiles de téléverser des fichiers directement sur IPFS Ninja sans exposer votre clé API.
Un flux typique : votre serveur généré un token signe en utilisant votre clé API, le transmet au client, et le client l'utilise pour téléverser des fichiers. Le token expire automatiquement apres la durée specifiee.

POST /upload/signed-url
Créez un nouveau token de téléversement signe.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
name | string | Non | Libellé pour le token (ex. "Téléversements app mobile"). |
expiresIn | number | Oui | Durée de vie du token en secondes. |
curl -X POST https://api.ipfs.ninja/upload/signed-url \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"name": "Mobile app", "expiresIn": 3600}'201 Created {
"token": "sup_a1b2c3d4e5f6789012345678abcdef01...",
"tokenId": "tok_9876543210abcdef",
"tokenPrefix": "sup_a1b2c3d4",
"tokenName": "Mobile app",
"expiresAt": 1711040400000
}WARNING
Le token complet n'est retourné qu'une seule fois à la creation. Stockez-le en toute sécurité ou transmettez-le directement à votre client.
GET /signed-tokens
Retourne tous les tokens signes de votre compte, y compris les statistiques d'utilisation.
curl https://api.ipfs.ninja/signed-tokens \
-H "X-Api-Key: bws_your_api_key_here"200 OK [
{
"tokenId": "tok_9876543210abcdef",
"tokenPrefix": "sup_a1b2c3d4",
"tokenName": "Mobile app",
"expiresAt": 1711040400000,
"useCount": 15,
"lastUsedAt": 1711038600000,
"createdAt": 1711036800000
}
]DELETE /signed-tokens/:tokenId
Revoquez immédiatement un token signe. Toute tentative de téléversement ulterieure utilisant ce token sera rejetée.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
tokenId | string | Oui | L'ID du token a revoquer (ex. "tok_9876543210abcdef"). |
curl -X DELETE https://api.ipfs.ninja/signed-tokens/tok_9876543210abcdef \
-H "X-Api-Key: bws_your_api_key_here"200 OK {
"message": "Token revoked"
}Pour téléverser avec un token signe, transmettez-le via l'en-tête Authorization avec le schéma Signed :
curl -X POST https://api.ipfs.ninja/upload/new \
-H "Authorization: Signed sup_a1b2c3d4e5f6789012345678abcdef01..." \
-H "Content-Type: application/json" \
-d '{"content": {"name": "example"}, "description": "Client upload"}'Le corps de la requête et le format de réponse sont identiques à un téléversement de fichier standard.
Chaque fois qu'un token signe est utilise, le useCount est incremente et lastUsedAt est mis à jour. Vous pouvez surveiller l'activité des tokens via GET /signed-tokens.
Les tokens signes sont enregistrés avec leur préfixe dans le champ API_KEY_PREFIX des analytiques. Cela signifie que vous pouvez filtrer les analytiques par préfixe de token signe de la même manière que vous filtrez par préfixe de clé API. Consultez Analytiques pour plus de details.
Générez un token sur votre serveur et utilisez-le en JavaScript côté client :
// Server-side: generate a token valid for 1 hour
const res = await fetch("https://api.ipfs.ninja/upload/signed-url", {
method: "POST",
headers: {
"X-Api-Key": "bws_your_server_key",
"Content-Type": "application/json"
},
body: JSON.stringify({ name: "Web form", expiresIn: 3600 })
});
const { token } = await res.json();
// Pass `token` to the client
// Client-side: upload a file using the signed token
const file = document.getElementById("fileInput").files[0];
const reader = new FileReader();
reader.onload = async () => {
const base64 = reader.result.split(",")[1];
const uploadRes = await fetch("https://api.ipfs.ninja/upload/new", {
method: "POST",
headers: {
"Authorization": `Signed ${token}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
content: base64,
description: "User upload"
})
});
const data = await uploadRes.json();
console.log("Uploaded:", data.cid);
};
reader.readAsDataURL(file);