Português (PT)
Português (PT)
Appearance
Português (PT)
Português (PT)
Appearance
Tokens de upload assinados são credenciais com tempo limitado projetadas para uploads do lado do cliente. Eles permitem que navegadores e aplicativos móveis facam upload de arquivos diretamente para o IPFS Ninja sem expor sua chave API.
Um fluxo tipico: seu servidor gera um token assinado usando sua chave API, passa-o ao cliente, é o cliente o usa para fazer upload de arquivos. O token expira automaticamente após a duração especificada.

POST /upload/signed-url
Crie um novo token de upload assinado.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Não | Rótulo para o token (ex.: "Uploads app móvel"). |
expiresIn | number | Sim | Tempo de vida do token em segundos. |
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
O token completo só é retornretornado uma vez na criacao. Armazene-o com segurança ou passe-o diretamente ao seu cliente.
GET /signed-tokens
Retorna todos os tokens assinados da sua conta, incluindo estatísticas de uso.
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
Revogue imediatamente um token assinado. Qualquer tentativa de upload posterior usando este token será rejeitada.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
tokenId | string | Sim | O ID do token a revogar (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"
}Para fazer upload com um token assinado, passe-o pelo cabeçalho Authorization com o esquema 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"}'O corpo da requisição é o formato de resposta são identicos a um upload de arquivo padrão.
Cada vez que um token assinado é usadousado, o useCount e incrementado e lastUsedAt e atualizado. Você pode monitorar a atividade dos tokens via GET /signed-tokens.
Os tokens assinados são registrados com seu prefixo no campo API_KEY_PREFIX das analíticas. Isso significa que você pode filtrar analíticas por prefixo de token assinado da mesma forma que filtra por prefixo de chave API. Consulte Analíticas para detalhes.
Gere um token no seu servidor e use-o em JavaScript do lado do cliente:
// 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);