Upload de Arquivos
Este guia explica como usar a função upload da biblioteca do datallog para enviar arquivos usando uma URL pré-assinada (presigned URL). O uploader realiza a validação, solicita um endpoint de upload pré-assinado da API do Datallog e, em seguida, envia seu arquivo diretamente para o provedor de armazenamento.
O resultado é uma URL pública temporária, válida por 30 dias.
Visão Geral
O fluxo de upload funciona em duas etapas:
- Solicitar uma URL pré-assinada ao backend do Datallog
- Fazer o upload do arquivo diretamente para o provedor de armazenamento (ex.: S3)
Essa abordagem garante uploads rápidos, mantendo uma carga mínima na API principal do Datallog.
Requisitos
Para usar o uploader, você precisa de:
- Um token de autorização válido
- Uma chave de API (API Key) válida
- Um arquivo fornecido como
bytesoubytearray - Python 3.10+ e a biblioteca
requests
Você pode fornecer o token de autorização e a chave de API diretamente ao chamar a função ou expô-los como variáveis de ambiente. No entanto, se você estiver executando dentro do ambiente de nuvem MWM ou com o comando do SDK "datallog run", essas variáveis já estarão definidas.
export datallog_user_auth_token="SEU_TOKEN"
export datallog_x_api_key="SUA_API_KEY"Como Usar a Função upload
Exemplo Básico de Upload
from datallog import uploader
with open("exemplo.pdf", "rb") as f:
file_bytes = f.read()
url = uploader.upload(
filename="exemplo.pdf",
file=file_bytes,
max_size=5 # MB
)
print("Arquivo hospedado em:", url)Autenticação Explícita
url = uploader.upload(
filename="imagem.png",
file=image_bytes,
auth_token="SEU_TOKEN",
x_api_key="SUA_CHAVE",
)Tratamento de Erros
try:
url = uploader.upload("dados.csv", file_bytes, max_size=1)
except InvalidCredentialsError:
print("Suas credenciais são inválidas ou estão ausentes.")
except APIError as e:
print("Falha no upload:", e)
except UploaderError as e:
print("Erro de entrada:", e)Valor Retornado
Em caso de sucesso, o uploader retorna uma URL do CloudFront onde o arquivo fica acessível por 30 dias.