Class ArmazenamentoArquivoService
java.lang.Object
br.com.vantroba.bi.transporte.processamento.ArmazenamentoArquivoService
Coordena o armazenamento do binário XLS entre o Postgres (coluna
arquivo_bytes) e o
object storage Garage, conforme o ArmazenamentoModo configurado em
app.storage.modo.
É o único ponto que conhece os dois backends de uma vez: o ProcessamentoService e o
ProcessamentoProcessador dependem só deste coordenador, sem lógica de modo espalhada.
-
Constructor Summary
ConstructorsConstructorDescriptionArmazenamentoArquivoService(br.com.xadm.comum.armazenamento.ArquivoXlsStorage garage, ProcessamentoRepository repository, br.com.xadm.comum.armazenamento.ArmazenamentoConfig cfg) Cria o coordenador de armazenamento. -
Method Summary
Modifier and TypeMethodDescriptionbyte[]buscar(ProcessamentoXls proc) Lê os bytes do XLS de um processamento.br.com.xadm.comum.armazenamento.ReferenciaObjetogravarNoGarage(byte[] conteudo, String checksum, LocalDate dataParticao) Grava o XLS no Garage quando o modo exige.voidgravarNoPostgres(Long id, byte[] conteudo) Grava o XLS na colunaarquivo_bytesdo Postgres quando o modo exige; no-op caso contrário.br.com.xadm.comum.armazenamento.ArmazenamentoModomodo()Returns o modo de armazenamento configurado.voidremoverDoGarage(String bucket, String chave) Remove o objeto do Garage.
-
Constructor Details
-
ArmazenamentoArquivoService
public ArmazenamentoArquivoService(br.com.xadm.comum.armazenamento.ArquivoXlsStorage garage, ProcessamentoRepository repository, br.com.xadm.comum.armazenamento.ArmazenamentoConfig cfg) Cria o coordenador de armazenamento.- Parameters:
garage- seam do object storage Garagerepository- repositório de processamentos (leitura/escrita dearquivo_bytes)cfg- configuração de armazenamento (app.storage.*)
-
-
Method Details
-
modo
public br.com.xadm.comum.armazenamento.ArmazenamentoModo modo()Returns o modo de armazenamento configurado.- Returns:
- o modo de armazenamento configurado
-
gravarNoGarage
public br.com.xadm.comum.armazenamento.ReferenciaObjeto gravarNoGarage(byte[] conteudo, String checksum, LocalDate dataParticao) Grava o XLS no Garage quando o modo exige. Content-addressed: um reenvio idêntico sobrescreve o mesmo objeto.- Parameters:
conteudo- bytes do arquivo.xlsxchecksum- checksum SHA-256 do arquivodataParticao- data usada para particionar a chave do objeto- Returns:
- a referência ao objeto gravado, ou
nullno modoArmazenamentoModo.PSQL
-
gravarNoPostgres
Grava o XLS na colunaarquivo_bytesdo Postgres quando o modo exige; no-op caso contrário. Usa o repositório (que gerencia a própria conexão) — a entidadeProcessamentoXlsnão mapeia essa coluna.- Parameters:
id- identificador do processamento (linha já persistida)conteudo- bytes do arquivo.xlsx
-
buscar
Lê os bytes do XLS de um processamento. Nos modosPSQL_GARAGE/GARAGElê do Garage; noPSQLlê dearquivo_bytes. Em qualquer modo recorre ao outro backend se a fonte preferida estiver vazia — cobre registros em transição de modo (ex.: criados emPSQLe processados após troca paraGARAGE).- Parameters:
proc- processamento cujo binário se quer ler- Returns:
- bytes do arquivo
.xlsx - Throws:
IllegalStateException- se o binário não estiver em nenhum dos backends
-
removerDoGarage
-