Sistema de transferência automática de arquivos entre buckets do Google Cloud Storage usando Cloudflare Workers.
- 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)
O sistema possui dois schedulers configurados:
-
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
- Padrão:
-
Processamento do Dia Anterior
- Padrão:
0 1 * * * - Processa arquivos do dia anterior
- Executa uma vez por dia à 01:00
- Padrão:
GET /- Informações da APIGET /files- Lista arquivos com filtrosGET /files/name/{filename}- Busca arquivo por nomeGET /files/today- Lista arquivos modificados hojePOST /copy- Copia arquivos entre bucketsGET /download- Download de arquivoPOST /transfer- Transferência completa de arquivosPOST /compare- Compara arquivos entre bucketsGET /cache/stats- Estatísticas do cache de tokensPOST /cache/clear- Limpa cache de tokens
GCP_PROJECT- Nome do projeto no Google CloudSERVICE_ACCOUNT_EMAIL- Email da service accountGCS_BUCKET- Nome do bucket de origemPRIVATE_KEY- Chave privada da service account
ACCESS_TOKEN- Token de acesso pré-configuradoENVIRONMENT- Ambiente (production, staging, preview)
vars = {
ENVIRONMENT = "production",
GCP_PROJECT = "etus-media-data-prod",
SERVICE_ACCOUNT_EMAIL = "extractions@brius-prod.iam.gserviceaccount.com",
GCS_BUCKET = "gdfp-21842055933"
}vars = {
ENVIRONMENT = "staging",
GCP_PROJECT = "etus-media-data-staging",
SERVICE_ACCOUNT_EMAIL = "extractions@brius-staging.iam.gserviceaccount.com",
GCS_BUCKET = "gdfp-21842055933"
}vars = {
ENVIRONMENT = "preview",
GCP_PROJECT = "etus-media-data-prod",
SERVICE_ACCOUNT_EMAIL = "extractions@brius-prod.iam.gserviceaccount.com",
GCS_BUCKET = "gdfp-21842055933"
}O sistema processa arquivos de duas formas:
-
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
-
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
- 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
Para fazer deploy das alterações:
wrangler deployPara configurar as chaves secretas:
wrangler secret put PRIVATE_KEY
wrangler secret put ACCESS_TOKEN # opcional