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 object storage S3-compatível (Garage em produção) via AWS SDK v2.

Content-addressed: a chave do objeto é {ano}/{mes}/{checksum}.xlsx, particionada pela data de referência do processamento.

  • Constructor Details

    • S3ArquivoXlsStorage

      public S3ArquivoXlsStorage(software.amazon.awssdk.services.s3.S3Client s3, S3Config cfg)
      Cria o storage S3.
      Parameters:
      s3 - cliente S3 (AWS SDK v2) apontado ao object storage
      cfg - configuração do S3 (s3.*) — bucket e criar-bucket
  • 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