Endpoints
Faz upload de um arquivo para o CDN.
Parâmetros
| Nome |
Tipo |
Descrição |
Obrigatório |
| file |
File |
O arquivo a ser enviado |
Sim |
| directory |
String |
Diretório onde o arquivo será salvo (relativo à raiz do CDN) |
Não |
Exemplo de Requisição
Usando curl:
curl -X POST \
-H "Authorization: Bearer sua_chave_api_aqui" \
-F "file=@caminho/para/seu/arquivo.jpg" \
-F "directory=pasta/subpasta" \
https://seu-dominio.com/upload
Usando JavaScript (com FormData):
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('directory', 'pasta/subpasta');
fetch('/upload', {
method: 'POST',
headers: {
'Authorization': `Bearer sua_chave_api_aqui`
},
body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Erro:', error));
Resposta de Sucesso (200 OK)
{
"success": true,
"file": {
"name": "nome_original_do_arquivo.jpg",
"size": 12345,
"type": "image/jpeg",
"url": "https://seu-dominio.com/files/pasta/subpasta/arquivo_uuid.jpg",
"directory": "pasta/subpasta",
"path": "pasta/subpasta/arquivo_uuid.jpg"
}
}
Respostas de Erro
| Código |
Descrição |
| 400 Bad Request |
Arquivo não enviado ou tipo de arquivo não permitido |
| 401 Unauthorized |
Chave de API inválida ou ausente |
| 500 Internal Server Error |
Erro ao processar o arquivo |
Lista todos os arquivos no diretório raiz do CDN.
Exemplo de Requisição
curl -X GET \
-H "Authorization: Bearer sua_chave_api_aqui" \
https://seu-dominio.com/files/list
Usando JavaScript:
fetch('/files/list', {
method: 'GET',
headers: {
'Authorization': `Bearer sua_chave_api_aqui`
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Erro:', error));
Resposta de Sucesso (200 OK)
{
"files": [
{
"name": "arquivo1.jpg",
"size": 12345,
"url": "https://seu-dominio.com/files/arquivo1.jpg"
},
{
"name": "arquivo2.pdf",
"size": 67890,
"url": "https://seu-dominio.com/files/arquivo2.pdf"
}
]
}
Lista arquivos e diretórios em um diretório específico, com mais detalhes.
Parâmetros de Query
| Nome |
Tipo |
Descrição |
Obrigatório |
| directory |
String |
Caminho do diretório a ser listado (relativo à raiz do CDN) |
Não (padrão: raiz) |
Exemplo de Requisição
curl -X GET \
-H "Authorization: Bearer sua_chave_api_aqui" \
https://seu-dominio.com/api/files?directory=pasta/subpasta
Usando JavaScript:
fetch('/api/files?directory=pasta/subpasta', {
method: 'GET',
headers: {
'Authorization': `Bearer sua_chave_api_aqui`
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Erro:', error));
Resposta de Sucesso (200 OK)
{
"currentDirectory": "pasta/subpasta",
"parentDirectory": "pasta",
"items": [
{
"name": "outra_pasta",
"type": "directory",
"path": "pasta/subpasta/outra_pasta"
},
{
"name": "arquivo.jpg",
"type": "file",
"size": 12345,
"modified": "2023-05-15T10:30:00.000Z",
"url": "https://seu-dominio.com/files/pasta/subpasta/arquivo.jpg",
"path": "pasta/subpasta/arquivo.jpg",
"extension": ".jpg"
}
]
}
Exclui um arquivo do diretório raiz do CDN.
Parâmetros de URL
| Nome |
Tipo |
Descrição |
Obrigatório |
| filename |
String |
Nome do arquivo a ser excluído |
Sim |
Exemplo de Requisição
curl -X DELETE \
-H "Authorization: Bearer sua_chave_api_aqui" \
https://seu-dominio.com/files/arquivo.jpg
Usando JavaScript:
fetch('/files/arquivo.jpg', {
method: 'DELETE',
headers: {
'Authorization': `Bearer sua_chave_api_aqui`
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Erro:', error));
Resposta de Sucesso (200 OK)
{
"success": true,
"message": "Arquivo excluído com sucesso"
}
Exclui um arquivo ou diretório de qualquer local do CDN.
Parâmetros de URL
| Nome |
Tipo |
Descrição |
Obrigatório |
| type |
String |
Tipo do item: "file" ou "directory" |
Sim |
| path |
String |
Caminho do item a ser excluído (relativo à raiz do CDN) |
Sim |
Exemplo de Requisição
curl -X DELETE \
-H "Authorization: Bearer sua_chave_api_aqui" \
https://seu-dominio.com/api/items/file/pasta/subpasta/arquivo.jpg
Usando JavaScript:
fetch('/api/items/file/pasta/subpasta/arquivo.jpg', {
method: 'DELETE',
headers: {
'Authorization': `Bearer sua_chave_api_aqui`
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Erro:', error));
Resposta de Sucesso (200 OK)
{
"success": true,
"message": "Item excluído com sucesso"
}
Cria um novo diretório no CDN.
Parâmetros do Corpo (JSON)
| Nome |
Tipo |
Descrição |
Obrigatório |
| directory |
String |
Diretório pai onde o novo diretório será criado (relativo à raiz do CDN) |
Não (padrão: raiz) |
| name |
String |
Nome do novo diretório |
Sim |
Exemplo de Requisição
curl -X POST \
-H "Authorization: Bearer sua_chave_api_aqui" \
-H "Content-Type: application/json" \
-d '{"directory": "pasta", "name": "nova_pasta"}' \
https://seu-dominio.com/api/directories
Usando JavaScript:
fetch('/api/directories', {
method: 'POST',
headers: {
'Authorization': `Bearer sua_chave_api_aqui`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
directory: 'pasta',
name: 'nova_pasta'
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Erro:', error));
Resposta de Sucesso (200 OK)
{
"success": true,
"directory": {
"name": "nova_pasta",
"path": "pasta/nova_pasta"
}
}
Obtém informações detalhadas e preview de um arquivo.
Parâmetros de URL
| Nome |
Tipo |
Descrição |
Obrigatório |
| path |
String |
Caminho do arquivo (relativo à raiz do CDN) |
Sim |
Exemplo de Requisição
curl -X GET \
-H "Authorization: Bearer sua_chave_api_aqui" \
https://seu-dominio.com/api/preview/pasta/subpasta/arquivo.txt
Usando JavaScript:
fetch('/api/preview/pasta/subpasta/arquivo.txt', {
method: 'GET',
headers: {
'Authorization': `Bearer sua_chave_api_aqui`
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Erro:', error));
Resposta de Sucesso (200 OK)
{
"name": "arquivo.txt",
"size": 1234,
"type": "text",
"extension": ".txt",
"modified": "2023-05-15T10:30:00.000Z",
"url": "https://seu-dominio.com/files/pasta/subpasta/arquivo.txt",
"content": "Conteúdo do arquivo de texto..." // Apenas para arquivos de texto
}
Nota: Para arquivos de texto (txt, js, css, html, json), o conteúdo do arquivo será incluído
na resposta se o tamanho for menor que 100KB. Para outros tipos de arquivo, apenas os metadados serão
retornados.