Introdução
A API do BuhDrive permite que você integre o armazenamento de imagens e arquivos diretamente em suas aplicações. Com ela, você pode enviar imagens remotamente, listar seus uploads e obter links diretos para usar em seus apps.
Domínio Oficial do Sistema: https://buh2.infinitdaw.site
Este é o domínio onde a BuhApp está hospedada. Suas requisições de API devem ser enviadas para este endereço.
Nota: Não confunda este domínio com o seu próprio domínio (onde seu app está rodando), que deve ser cadastrado na seção de "Domínios Permitidos".
V BuhApp Vault (Cofre de Segredos)
O maior risco de sites estáticos é expor chaves sensíveis (como o Token do Mercado Pago ou Stripe) no código JavaScript. O **BuhApp Vault** resolve isso permitindo que você guarde qualquer variável de ambiente em nossos servidores seguros.
Sem Exposição
Suas chaves ficam guardadas no banco de dados da BuhApp e **nunca** são enviadas para o navegador do seu cliente.
Variáveis Ilimitadas
Você pode salvar chaves de bancos de dados, integrações com Firebase, APIs de frete ou qualquer segredo personalizado.
Como usar o Vault no seu código:
// Em vez de colocar sua KEY real no JS, voce usa o endpoint de Functions:
fetch('https://buh2.infinitdaw.site/api/functions/pay', {
method: 'POST',
headers: { 'x-api-key': 'SUA_CHAVE_DE_APLICATIVO' },
body: JSON.stringify({ produto: 'Exemplo' })
})
O servidor receberá a chamada, buscará a MP_ACCESS_TOKEN no Vault e fará a ponte segura com o Mercado Pago por você.
Esta documentação detalha os endpoints disponíveis, o formato das requisições e como garantir que suas chamadas sejam seguras.
Autenticação e Segurança
Para realizar requisições à API, você deve utilizar sua Chave de API. Se você configurou uma Senha/Segredo para sua chave no painel, ela também será obrigatória para visualização direta ou caso o domínio não esteja na lista permitida.
x-api-key: bk_SUA_CHAVE_AQUI
x-api-secret: SUA_SENHA_AQUI
Segurança de Domínio: Além da chave, a API valida o Referer ou Origin. O sistema aceita o domínio exato ou subdomínios (ex: meusite.com permite app.meusite.com).
Importante: Foram removidas permissões genéricas por inclusão de string para evitar falhas graves de segurança. Agora, a correspondência deve ser exata ou por sufixo de domínio.
Upload Remoto (Múltiplos Arquivos)
Permite enviar até 10 arquivos simultaneamente. Formatos suportados: Imagens, Áudios e Vídeos.
Corpo (Multipart/Form-Data):
files: Array de um ou mais arquivos (até 10 por vez).
Exemplo JS (Fetch):
Resposta Sucesso:
Visualização e Proteção
Os arquivos do Drive não são mais expostos publicamente na pasta /uploads/drive/. Todo acesso agora é mediado por uma rota de visualização segura.
Como acessar:
- Embed em sites autorizados: Se o domínio estiver na lista de domínios permitidos da sua chave, a imagem carregará normalmente em
<img src="...">. - Acesso Direto / Browser: Para abrir o link diretamente no navegador (sem Referer de site autorizado), você deve passar a senha via query string:
https://.../api/drive/view/ARQUIVO.png?pwd=SUA_SENHA - Apps Mobile / SDK: Envie o header
x-api-secretna requisição.
Listar Arquivos
Retorna os arquivos enviados pelo usuário autenticado.
Excluir Arquivos
Remove permanentemente um arquivo do servidor.
Limites e Quotas
Os limites dependem do seu plano ativo:
| Plano | Capacidade Total | Qtd. Arquivos |
|---|---|---|
| LITE (Grátis) | 50 MB | 10 |
| BASIC | 500 MB | 100 |
| PRO | 2 GB | 1000 |
Resolução de Erros Comuns
Este erro ocorre quando o banco de dados do servidor ainda não foi atualizado com as novas tabelas do BuhDrive.
Como Resolver:
- O sistema agora possui um script de auto-inicialização que corrige isso ao iniciar.
- Reinicie o servidor: Apenas pare e inicie o processo novamente (ex:
pm2 restart all). - Ao iniciar, o arquivo
db.jsverificará a existência das tabelasdrive_filesedrive_api_keyse as criará automaticamente se estiverem faltando. - Verifique os logs de inicialização para confirmar a mensagem:
SQLite Database Initialized.
database.sqlite tem permissões de escrita para o usuário que executa o Node.js.