Interface FileService

All Known Implementing Classes:
FileServiceImpl

public interface FileService
Servico transacional de manutenção de arquivos no filesystem.
Author:
Eduardo Frazao
  • Method Details

    • getStoreDirectory

      File getStoreDirectory()
      Retorna o diretorio raiz do Viturvio
      Returns:
    • getTempDirectory

      File getTempDirectory()
      Retorna o diretorio que o servico utiliza para gerar arquivos temporarios
      Returns:
    • openSession

      Session openSession()
      Abre uma secao para uma transacao local no sistema de arquivos. As operacoes realizadas dentro da secao so se tornam visiveis no filesystem geral apos commit(Session); use rollback(Session) para desfaze-las.
      Returns:
      nova secao transacional de filesystem
    • createTemporaryFile

      File createTemporaryFile(Session session)
      Cria um arquivo temporario dentro da secao informada
      Parameters:
      session -
      Returns:
    • generateSha1SUM

      String generateSha1SUM(Session session, File file)
      Gera o hash sha1 de determinado arquivo disponivel apenas dentro determinada secao
      Parameters:
      session -
      file -
      Returns:
    • generateSha1SUM

      String generateSha1SUM(File file)
      Gera o hash SHA1 de um arquivo ja disponivel no filesystem geral
      Parameters:
      file -
      Returns:
    • createTemporaryFile

      File createTemporaryFile(Session session, String extension, String name)
      Cria um arquivo temporario dentro da secao informada
      Parameters:
      session -
      name -
      Returns:
    • createTemporaryFile

      File createTemporaryFile()
      Cria e comita um arquivo temporario
      Returns:
    • createTemporaryFile

      File createTemporaryFile(Session session, String extension)
      Cria um arquivo temporario dentro da secao informada
      Parameters:
      session -
      extension -
      Returns:
    • createTemporaryFile

      File createTemporaryFile(String extension)
      Cria um arquivo temporario com a extensao informada
      Parameters:
      extension -
      Returns:
    • createTemporaryDirectory

      File createTemporaryDirectory()
      Cria um diretorio temporario
      Returns:
    • createTemporaryDirectory

      File createTemporaryDirectory(Session session)
      Cria um arquivo temporario dentro da secao informada
      Parameters:
      session -
      extension -
      Returns:
    • writeTemporaryFile

      File writeTemporaryFile(InputStream inputStream)
      Escreve um arquivo temporario de forma transacional, a partir do stream especificado
      Parameters:
      inputStream -
      Returns:
    • writeTemporaryFileAsPdfa

      File writeTemporaryFileAsPdfa(InputStream inputStream)
      Escreve um arquivo temporario de forma transacional, a partir do stream especificado, compatível com PDF/A
      Parameters:
      inputStream -
      Returns:
    • createInSessionOutputStream

      OutputStream createInSessionOutputStream(Session session, File fileInSession)
      Arquivos ainda sob dominio da secao so podem ser escritos/lidos por streams especiais. Use este metodo para cria-los
      Parameters:
      fileInSession -
      Returns:
    • createInSessionInputStream

      InputStream createInSessionInputStream(Session session, File fileInSession)
      Arquivos ainda sob dominio da secao so podem ser escritos/lidos por streams especiais. Use este metodo para cria-los
      Parameters:
      fileInSession -
      Returns:
    • copyAsTemporaryFile

      File copyAsTemporaryFile(File source) throws IOException
      Copia o arquivo para a area de transferencia
      Parameters:
      source -
      Returns:
      Throws:
      IOException
    • persistFile

      Arquivo persistFile(Arquivo metadata, File file)
      Persiste o arquivo temporario dentro da estrutura de armazenamento do Vitruvio, em uma transacao propria que ja e comitada.
      Parameters:
      metadata - metadados do arquivo (nome, tipo, etc.)
      file - arquivo fisico em area temporaria
      Returns:
      entidade de arquivo persistida
    • persistFile

      Arquivo persistFile(Session session, Arquivo metadata, File file)
      Persiste o arquivo temporario dentro da estrutura de armazenamento do Vitruvio, utilizando a secao de filesystem informada. A secao nao sera comitada: cabe ao consumidor do metodo comitar as alteracoes em disco via commit(Session).
      Parameters:
      session - secao transacional ativa
      metadata - metadados do arquivo (nome, tipo, etc.)
      file - arquivo fisico em area temporaria
      Returns:
      entidade de arquivo persistida (ainda nao comitada)
    • persistMiniature

      void persistMiniature(Arquivo metadata)
      Persiste miniaturas de imagens conforme configuracao
      Parameters:
      metadata -
    • deleteMiniature

      void deleteMiniature(Arquivo metadata)
      Deleta miniaturas de imagens geradas
      Parameters:
      metadata -
    • updateFile

      Arquivo updateFile(Arquivo metadata, File file)
      Atualiza o arquivo referente aos metadados
      Parameters:
      metadata -
      file -
      Returns:
    • updateFile

      Arquivo updateFile(Session session, Arquivo metadata, File file)
      Atualiza o arquivo referente aos metadados
      Parameters:
      metadata -
      file -
      Returns:
    • createStream

      InputStream createStream(Integer fileId)
      Cria um stream de leitura do ID de arquivo informado
      Parameters:
      fileId -
      Returns:
    • createStream

      InputStream createStream(Arquivo arquivo)
      Cria um stream de leitura do arquivo informado
      Parameters:
      arquivo -
      Returns:
    • getFile

      File getFile(Integer fieldId)
      Retorna uma referencia ao arquivo no local de armazenamento designado pela configuracao vigente
      Parameters:
      fieldId -
      Returns:
    • getFile

      File getFile(Arquivo arquivo)
      Retorna uma referencia ao arquivo no local de armazenamento designado pela configuracao vigente
      Parameters:
      arquivo -
      Returns:
    • getMetadataById

      Arquivo getMetadataById(Integer id)
      Get File Metadata
      Parameters:
      id -
      Returns:
    • getFile

      File getFile(Miniatura miniatura)
      Retorna uma referencia ao arquivo no local de armazenamento designado pela configuracao vigente
      Parameters:
      arquivo -
      Returns:
    • getMiniatureFile

      File getMiniatureFile(Arquivo arquivo, Integer largura, Integer altura)
      Retorna uma referencia ao arquivo no local de armazenamento
      Parameters:
      arquivo -
      largura -
      altura -
      Returns:
    • getMiniatureFile

      File getMiniatureFile(Integer fileId, Integer largura, Integer altura)
      Obtem uma referencia para o arquivo da Miniatura de um determinado anexo
      Parameters:
      largura -
      altura -
      arquivo -
      Returns:
    • getMiniatureFile

      File getMiniatureFile(Long miniatureId)
      Obtem uma referencia para o arquivo da miniatura
      Parameters:
      miniatureId -
      Returns:
    • createMiniatureStream

      InputStream createMiniatureStream(Miniatura miniature)
      Cria um stream de leitura para de uma miniatura
      Parameters:
      miniature -
      Returns:
    • createMiniatureStream

      InputStream createMiniatureStream(Long miniatureId)
      Cria um stream de leitura para uma miniatura identificada por seu ID
      Parameters:
      miniatureId -
      Returns:
    • createMiniatureStream

      InputStream createMiniatureStream(Arquivo file, Integer largura, Integer altura)
      Cria um stream de leitura para uma miniatura, de acordo com seu arquivo de origem e suas dimensoes
      Parameters:
      file -
      largura -
      altura -
      Returns:
      Stream de leitura ou nulo
    • createMiniatureStream

      InputStream createMiniatureStream(Integer fileId, Integer largura, Integer altura)
      Cria um stream de leitura para uma miniatura, de acordo com seu arquivo de origem e suas dimensoes
      Parameters:
      largura -
      altura -
      file -
      Returns:
      Stream de leitura ou nulo
    • getMiniatures

      List<Miniatura> getMiniatures(Arquivo arquivo)
      Obtem uma lista de arquivos miniatura
      Parameters:
      arquivo -
      Returns:
    • deleteFile

      void deleteFile(Integer fileId)
      Remove o arquivo permanentemente, incluindo seus metadados
      Parameters:
      fileId -
    • deleteFile

      void deleteFile(Arquivo arquivo)
      Remove o arquivo permanentemente, incluindo seus metadados
      Parameters:
      arquivo -
    • deleteFile

      void deleteFile(Session session, Arquivo arquivo)
      Excluir o arquivo utilizando a secao informada
      Parameters:
      session -
      arquivo -
    • deleteFile

      void deleteFile(Session session, Integer fileId)
      Excluir o arquivo utilizando a secao informada
      Parameters:
      session -
      fileId -
    • rollback

      void rollback(Session s)
      Efetua rollback da transacao logando possiveis problemas
      Parameters:
      s -
    • commit

      void commit(Session s)
      Efetua commit da transacao logando possiveis problemas
      Parameters:
      s -
    • getHumanReadableByteSize

      String getHumanReadableByteSize(Number size)
      Obtem um tamanho legivel para exibicao ao usuario
      Parameters:
      size -
      Returns:
    • getHumanReadableByteSize

      String getHumanReadableByteSize(Arquivo arquivo)
      Obtem um tamanho legivel para exibicao ao usuario
      Parameters:
      arquivo -
      Returns:
    • buildRandomFileName

      String buildRandomFileName()
      Gera um nome de arquivo randomico
      Returns:
    • buildRandomFileName

      String buildRandomFileName(String extension)
      Gera um nome com caracteres randomicos
      Parameters:
      extension -
      Returns:
    • buildRandomFileName

      String buildRandomFileName(String prefix, String extension)
      Gera um nome com caracteres randomicos
      Parameters:
      prefix -
      extension -
      Returns:
    • generateTemporaryZipFileForIds

      File generateTemporaryZipFileForIds(Collection<Integer> fileIds)
      Constroi um arquivo ZIP temporario com os IDs de arquivos informados. Os arquivos sao armazenados com seus nomes originais; havendo conflito de nome com algum arquivo ja adicionado, o ID unico de armazenamento e utilizado para evitar sobreposicao.
      Parameters:
      fileIds - ids dos arquivos a incluir no ZIP
      Returns:
      arquivo ZIP temporario gerado
    • generateTemporaryZipForFiles

      File generateTemporaryZipForFiles(File[] files)
      Produz um arquivo zippado com os arquivos informados
      Parameters:
      files -
      Returns:
    • generateTemporaryZipForFiles

      File generateTemporaryZipForFiles(File[] files, String[] replacementNames)
      API
      Parameters:
      files - referencia a arquivos no FS
      replacementNames - Nomes a serem usados no arquivo zip
      Returns:
    • extractZipFile

      FileService.UnzipResult extractZipFile(Integer fileId) throws IOException
      Extrai o arquivo persistido para um diretorio temporario
      Parameters:
      fileId -
      Returns:
      Throws:
      IOException
    • extractZipFile

      FileService.UnzipResult extractZipFile(File file) throws IOException
      Extrai o arquivo informado para um diretorio temporario
      Parameters:
      file -
      Returns:
      Throws:
      IOException
    • closeResource

      void closeResource(Closeable resource)
      Utilitario para encerramento silencioso de referencias
      Parameters:
      resource -
    • copyFileToDestination

      void copyFileToDestination(File source, String destinationPath) throws IOException
      Copia o arquivo de origem para o local de destino Se o local de destino nao existir ou nao for um diretorio, o comando sera abortado
      Parameters:
      source -
      destination -
      Throws:
      IOException
    • copyFileToDestination

      void copyFileToDestination(File source, String destinationPath, String destinationName) throws IOException
      Copia o arquivo de origem para o local de destino Se o local de destino nao existir ou nao for um diretorio, o comando sera abortado
      Parameters:
      source -
      destination -
      Throws:
      IOException
    • copyFileToDestination

      void copyFileToDestination(File source, String destination, String destinationName, boolean overwrite, boolean createPathIfNecessary) throws IOException
      Copia o arquivo para o local de destino
      Parameters:
      source -
      destination -
      overwrite -
      createPathIfNecessary -
      Throws:
      IOException
    • registerFileAsTemporaryDownload

      DownloadTemporario registerFileAsTemporaryDownload(Arquivo arquivo, DownloadTemporario metadata)
      Registra um arquivo ja persistido como um arquivo de acesso temporario
      Parameters:
      arquivo - Entidade persistida
      metadata - Arquivo de metadados. Caso um UUID nao tenha sido atribuido, um sera gerado dinamicamente
      Returns:
      Entidade persistida
    • getTemporaryDownloadByUUID

      DownloadTemporario getTemporaryDownloadByUUID(String uuid)
      Obtem uma referencia para a entidade de download temporario ou NULO caso nenhuma seja encontrada com este UUID
      Parameters:
      uuid -
      Returns:
    • markDownloadToRemoval

      void markDownloadToRemoval(String uuid)
      Marca a entidade como elegivel para remocao pelas rotinas de limpeza
      Parameters:
      uuid -
    • removeTemporaryDownload

      void removeTemporaryDownload(DownloadTemporario entity)
      Remove o vinculo de acesso temporario do arquivo e tambem o arquivo referenciado fisicamente do filesystem juntamente com sua entrada na tabela de arquivos
      Parameters:
      entity -
    • removeTemporaryDownload

      void removeTemporaryDownload(DownloadTemporario entity, boolean removeFile)
      Remove o vinculo de acesso temporario do arquivo e opcionalmente o arquivo da tabela de arquivos e seu arquivo do filesystem
      Parameters:
      entity -
      removeFile -
    • getDownloadsAllowedToBeRemoved

      List<DownloadTemporario> getDownloadsAllowedToBeRemoved(int limit)
      Obtem uma lista de downloads temporarios elegiveis para serem removidos
      Parameters:
      limit -
      Returns: