L LUXIOS UPLOAD

Documentação da API

Envie arquivos de qualquer projeto — bots de Discord, Telegram, WhatsApp, scripts e aplicações — usando uma chave própria.


Como funciona

Cada arquivo enviado é gravado no disco do próprio servidor, sem expiração, e recebe um link público único no formato /f/{id}. A API é protegida por uma chave secreta gerada no painel do site.

POST /api/upload

Envia um arquivo. Autenticação pela chave no cabeçalho Authorization. O arquivo deve ser enviado no campo file, como multipart/form-data.

curl -X POST https://seudominio.com/api/upload \
  -H "Authorization: Bearer aalt_SUA_CHAVE" \
  -F "file=@foto.png"

Resposta 201 (criado com sucesso):

{
  "file": {
    "id": "f7a1c30e-...",
    "name": "foto.png",
    "contentType": "image/png",
    "sizeBytes": 420000,
    "publicUrl": "https://seudominio.com/f/f7a1c30e-..."
  }
}

Se a chave estiver ausente ou errada, a resposta será 401. Arquivos acima de 500 MB são rejeitados com 400.

Usando em bots

Qualquer linguagem que faça requisições HTTP pode usar a API. Exemplo em JavaScript (Node.js):

import fs from "node:fs";

const form = new FormData();
form.set("file", new Blob([fs.readFileSync("./foto.png")]), "foto.png");

const res = await fetch("https://seudominio.com/api/upload", {
  method: "POST",
  headers: { Authorization: "Bearer aalt_SUA_CHAVE" },
  body: form,
});

const data = await res.json();
console.log(data.file.publicUrl);

Em Python:

import requests

with open("foto.png", "rb") as f:
    res = requests.post(
        "https://seudominio.com/api/upload",
        headers={"Authorization": "Bearer aalt_SUA_CHAVE"},
        files={"file": ("foto.png", f)},
    )

print(res.json()["file"]["publicUrl"])

Gerenciando a chave

A chave é gerada no painel do site, na seção API externa. Ela é exibida apenas uma vez — anote-a. A rota abaixo (autenticada pelo painel) informa se existe uma chave ativa:

GET /api/keys/me

Responde {"exists": true, "prefix": "aalt_..."} quando há uma chave ativa.

POST /api/keys

Gera uma nova chave, retornando o segredo completo uma única vez.

POST /api/keys/revoke

Revoga a chave atual. As integrações pararão de funcionar imediatamente.

Acessando arquivos

Todo arquivo publicado fica acessível em /f/{id} sem autenticação, para sempre, até ser excluído pelo painel. Imagens e vídeos abrem direto no navegador; outros tipos são baixados.

Referência rápida

RecursoMétodoAutenticaçãoO que faz
/api/uploadPOSTChave BearerEnvia um arquivo (máx. 500 MB)
/f/{id}GETPúblicaServe o arquivo hospedado
/api/keys/meGETPainel (cookie)Verifica chave ativa
/api/keysPOSTPainel (cookie)Gera nova chave
/api/keys/revokePOSTPainel (cookie)Revoga a chave

As variáveis de ambiente AA_PORT, AA_PUBLIC_URL, AA_MAX_BYTES, AA_USER e AA_PASS configuram o servidor. Veja o README.md do pacote.