Skip to content

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:

  1. Solicitar uma URL pré-assinada ao backend do Datallog
  2. 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 bytes ou bytearray
  • 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.

bash
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

python
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

python
url = uploader.upload(
    filename="imagem.png",
    file=image_bytes,
    auth_token="SEU_TOKEN",
    x_api_key="SUA_CHAVE",
)

Tratamento de Erros

python

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.