Class S3ArquivoXlsStorage

java.lang.Object
br.com.xadm.comum.armazenamento.S3ArquivoXlsStorage
All Implemented Interfaces:
ArquivoXlsStorage

@Singleton public class S3ArquivoXlsStorage extends Object implements ArquivoXlsStorage
Implementação de ArquivoXlsStorage sobre ObjetoStorage (object storage S3-compatível — Garage em produção).

É o caso datado do seam genérico: deriva a chave content-addressed {ano}/{mes}/{checksum}.xlsx — particionada pela data de referência — e o contentType de planilha, delegando a gravação/leitura no ObjetoStorage. Consumidores que precisam de .zip/.csv genéricos injetam ObjetoStorage direto.

  • Constructor Details

    • S3ArquivoXlsStorage

      public S3ArquivoXlsStorage(ObjetoStorage objetos)
      Cria o storage datado de XLS.
      Parameters:
      objetos - seam genérico de object storage onde o binário é gravado
  • Method Details

    • salvar

      public ReferenciaObjeto salvar(byte[] conteudo, String checksum, LocalDate dataParticao)
      Description copied from interface: ArquivoXlsStorage
      Salva o binário do XLS e retorna a referência ao objeto.
      Specified by:
      salvar in interface ArquivoXlsStorage
      Parameters:
      conteudo - bytes do arquivo .xlsx
      checksum - checksum SHA-256 do arquivo (compõe a chave content-addressed)
      dataParticao - data usada para particionar a chave ({ano}/{mes}/...)
      Returns:
      referência ao objeto gravado (bucket, chave, tamanho)
    • buscar

      public byte[] buscar(String bucket, String chave)
      Description copied from interface: ArquivoXlsStorage
      Recupera o binário de um objeto.
      Specified by:
      buscar in interface ArquivoXlsStorage
      Parameters:
      bucket - bucket do objeto
      chave - chave do objeto
      Returns:
      bytes do arquivo
    • remover

      public void remover(String bucket, String chave)
      Description copied from interface: ArquivoXlsStorage
      Remove um objeto.
      Specified by:
      remover in interface ArquivoXlsStorage
      Parameters:
      bucket - bucket do objeto
      chave - chave do objeto