Skip to content

etusdigital/data-transfer-cloudflare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Data Transfer Extraction API

Sistema de transferência automática de arquivos entre buckets do Google Cloud Storage usando Cloudflare Workers.

Funcionalidades

  • Listagem de arquivos com paginação
  • Transferência automática de arquivos
  • Cache de tokens de autenticação
  • Processamento em lotes paralelos
  • Agendamento automático de transferências
  • Suporte a múltiplos ambientes (production, staging, preview)

Configuração do Scheduler

O sistema possui dois schedulers configurados:

  1. Processamento Diário (a cada 6 horas)

    • Padrão: 0 */6 * * *
    • Processa arquivos do dia atual
    • Executa às 00:00, 06:00, 12:00 e 18:00
  2. Processamento do Dia Anterior

    • Padrão: 0 1 * * *
    • Processa arquivos do dia anterior
    • Executa uma vez por dia à 01:00

Endpoints da API

  • GET / - Informações da API
  • GET /files - Lista arquivos com filtros
  • GET /files/name/{filename} - Busca arquivo por nome
  • GET /files/today - Lista arquivos modificados hoje
  • POST /copy - Copia arquivos entre buckets
  • GET /download - Download de arquivo
  • POST /transfer - Transferência completa de arquivos
  • POST /compare - Compara arquivos entre buckets
  • GET /cache/stats - Estatísticas do cache de tokens
  • POST /cache/clear - Limpa cache de tokens

Variáveis de Ambiente

Obrigatórias

  • GCP_PROJECT - Nome do projeto no Google Cloud
  • SERVICE_ACCOUNT_EMAIL - Email da service account
  • GCS_BUCKET - Nome do bucket de origem
  • PRIVATE_KEY - Chave privada da service account

Opcionais

  • ACCESS_TOKEN - Token de acesso pré-configurado
  • ENVIRONMENT - Ambiente (production, staging, preview)

Ambientes

Production

vars = { 
    ENVIRONMENT = "production", 
    GCP_PROJECT = "etus-media-data-prod", 
    SERVICE_ACCOUNT_EMAIL = "extractions@brius-prod.iam.gserviceaccount.com", 
    GCS_BUCKET = "gdfp-21842055933" 
}

Staging

vars = { 
    ENVIRONMENT = "staging", 
    GCP_PROJECT = "etus-media-data-staging", 
    SERVICE_ACCOUNT_EMAIL = "extractions@brius-staging.iam.gserviceaccount.com", 
    GCS_BUCKET = "gdfp-21842055933" 
}

Preview

vars = { 
    ENVIRONMENT = "preview", 
    GCP_PROJECT = "etus-media-data-prod", 
    SERVICE_ACCOUNT_EMAIL = "extractions@brius-prod.iam.gserviceaccount.com", 
    GCS_BUCKET = "gdfp-21842055933" 
}

Processamento de Arquivos

O sistema processa arquivos de duas formas:

  1. Processamento do Dia Atual

    • Executado a cada 6 horas
    • Busca e transfere arquivos modificados no dia atual
    • Mantém cache de tokens para otimizar requisições
  2. Processamento do Dia Anterior

    • Executado uma vez por dia (01:00)
    • Busca e transfere arquivos do dia anterior
    • Útil para garantir que nenhum arquivo foi perdido

Limitações e Considerações

  • Máximo de 20 arquivos por lote em cópias manuais
  • Máximo de 25 arquivos por lote em transferências automáticas
  • Tempo limite de execução de 30 segundos por job
  • Cache de tokens com validade de 50 minutos
  • Máximo de 50 páginas por busca de arquivos

Deploy

Para fazer deploy das alterações:

wrangler deploy

Configuração de Secrets

Para configurar as chaves secretas:

wrangler secret put PRIVATE_KEY
wrangler secret put ACCESS_TOKEN # opcional

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors