Package br.com.davinti.vitruvio.spi.impl
Class FileServiceImpl
Object
FileServiceImpl
- All Implemented Interfaces:
FileService
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface FileService
FileService.UnzipResult -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGera um nome de arquivo randomicobuildRandomFileName(String extension) Gera um nome com caracteres randomicosbuildRandomFileName(String prefix, String extension) Gera um nome com caracteres randomicosvoidcloseResource(Closeable resource) Utilitario para encerramento silencioso de referenciasvoidEfetua commit da transacao logando possiveis problemascopyAsTemporaryFile(File source) Copia o arquivo para a area de transferenciavoidcopyFileToDestination(File source, String destination) 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 abortadovoidcopyFileToDestination(File source, String destination, String destinationName) 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 abortadovoidcopyFileToDestination(File source, String destination, String destinationName, boolean overwrite, boolean createPathIfNecessary) Copia o arquivo para o local de destinocreateInSessionInputStream(Session session, File fileInSession) Arquivos ainda sob dominio da secao so podem ser escritos/lidos por streams especiais.createInSessionOutputStream(Session session, File fileInSession) Arquivos ainda sob dominio da secao so podem ser escritos/lidos por streams especiais.createMiniatureStream(Arquivo file, Integer largura, Integer altura) Cria um stream de leitura para uma miniatura, de acordo com seu arquivo de origem e suas dimensoescreateMiniatureStream(Miniatura miniature) Cria um stream de leitura para de uma miniaturacreateMiniatureStream(Integer fileId, Integer largura, Integer altura) Cria um stream de leitura para uma miniatura, de acordo com seu arquivo de origem e suas dimensoescreateMiniatureStream(Long miniatureId) Cria um stream de leitura para uma miniatura identificada por seu IDcreateStream(Arquivo arquivo) Cria um stream de leitura do arquivo informadocreateStream(Integer fileId) Cria um stream de leitura do ID de arquivo informadoCria um diretorio temporariocreateTemporaryDirectory(Session session) Cria um arquivo temporario dentro da secao informadaCria e comita um arquivo temporariocreateTemporaryFile(String extension) Cria um arquivo temporario com a extensao informadacreateTemporaryFile(Session session) Cria um arquivo temporario dentro da secao informadacreateTemporaryFile(Session session, String extension) Cria um arquivo temporario dentro da secao informadacreateTemporaryFile(Session session, String extension, String name) Cria um arquivo temporario dentro da secao informadavoiddeleteFile(Arquivo arquivo) Remove o arquivo permanentemente, incluindo seus metadadosvoiddeleteFile(Integer fileId) Remove o arquivo permanentemente, incluindo seus metadadosvoiddeleteFile(Session session, Arquivo arquivo) Excluir o arquivo utilizando a secao informadavoiddeleteFile(Session session, Integer fileId) Excluir o arquivo utilizando a secao informadavoiddeleteMiniature(Arquivo metadata) Deleta miniaturas de imagens geradasextractZipFile(File file) Extrai o arquivo informado para um diretorio temporarioextractZipFile(Integer fileId) Extrai o arquivo persistido para um diretorio temporariogenerateSha1SUM(File file) Gera o hash SHA1 de um arquivo ja disponivel no filesystem geralgenerateSha1SUM(Session session, File file) Gera o hash sha1 de determinado arquivo disponivel apenas dentro determinada secaogenerateTemporaryZipFileForIds(Collection<Integer> fileIds) Constroi um arquivo ZIP temporario com os IDs de arquivos informados.generateTemporaryZipForFiles(File[] files) Produz um arquivo zippado com os arquivos informadosgenerateTemporaryZipForFiles(File[] files, String[] replacementNames) APIList<DownloadTemporario> getDownloadsAllowedToBeRemoved(int limit) Obtem uma lista de downloads temporarios elegiveis para serem removidosgetFile(Arquivo arquivo) Retorna uma referencia ao arquivo no local de armazenamento designado pela configuracao vigentegetFile(Miniatura miniatura) Retorna uma referencia ao arquivo no local de armazenamento designado pela configuracao vigenteRetorna uma referencia ao arquivo no local de armazenamento designado pela configuracao vigentegetHumanReadableByteSize(Arquivo arquivo) Obtem um tamanho legivel para exibicao ao usuarioObtem um tamanho legivel para exibicao ao usuarioArquivoGet File MetadatagetMiniatureFile(Arquivo arquivo, Integer largura, Integer altura) Retorna uma referencia ao arquivo no local de armazenamentogetMiniatureFile(Integer fileId, Integer largura, Integer altura) Obtem uma referencia para o arquivo da Miniatura de um determinado anexogetMiniatureFile(Long miniatureId) Obtem uma referencia para o arquivo da miniaturaList<Miniatura> getMiniatures(Arquivo arquivo) Obtem uma lista de arquivos miniaturaRetorna o diretorio raiz do ViturvioRetorna o diretorio que o servico utiliza para gerar arquivos temporariosDownloadTemporarioObtem uma referencia para a entidade de download temporario ou NULO caso nenhuma seja encontrada com este UUIDvoidmarkDownloadToRemoval(String uuid) Marca a entidade como elegivel para remocao pelas rotinas de limpezaAbre uma secao para uma transacao local no sistema de arquivos.ArquivopersistFile(Arquivo metadata, File file) Persiste o arquivo temporario dentro da estrutura de armazenamento do Vitruvio, em uma transacao propria que ja e comitada.ArquivopersistFile(Session session, Arquivo metadata, File file) Persiste o arquivo temporario dentro da estrutura de armazenamento do Vitruvio, utilizando a secao de filesystem informada.voidpersistMiniature(Arquivo metadata) Persiste miniaturas de imagens conforme configuracaoDownloadTemporarioregisterFileAsTemporaryDownload(Arquivo arquivo, DownloadTemporario metadata) Registra um arquivo ja persistido como um arquivo de acesso temporariovoidremoveTemporaryDownload(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 arquivosvoidremoveTemporaryDownload(DownloadTemporario entity, boolean removeFile) Remove o vinculo de acesso temporario do arquivo e opcionalmente o arquivo da tabela de arquivos e seu arquivo do filesystemvoidEfetua rollback da transacao logando possiveis problemasvoidsetArquivoDao(ArquivoDao arquivoDao) voidsetConfigService(ConfigService configService) voidsetDownloadTemporarioDao(DownloadTemporarioDao downloadTemporarioDao) voidsetMiniaturaDao(MiniaturaDao miniaturaDao) voidsetSetupConfig(UploadFileSystemSetup setupConfig) ArquivoupdateFile(Arquivo metadata, File file) Atualiza o arquivo referente aos metadadosArquivoupdateFile(Session session, Arquivo metadata, File file) Atualiza o arquivo referente aos metadadoswriteTemporaryFile(InputStream inputStream) Escreve um arquivo temporario de forma transacional, a partir do stream especificadowriteTemporaryFileAsPdfa(InputStream pdfInputStream) Escreve um arquivo temporario de forma transacional, a partir do stream especificado, compatÃvel com PDF/A
-
Constructor Details
-
FileServiceImpl
public FileServiceImpl()
-
-
Method Details
-
setSetupConfig
-
setArquivoDao
-
setMiniaturaDao
-
setDownloadTemporarioDao
-
setConfigService
-
getStoreDirectory
Description copied from interface:FileServiceRetorna o diretorio raiz do Viturvio- Specified by:
getStoreDirectoryin interfaceFileService- Returns:
-
getTempDirectory
Description copied from interface:FileServiceRetorna o diretorio que o servico utiliza para gerar arquivos temporarios- Specified by:
getTempDirectoryin interfaceFileService- Returns:
-
openSession
Description copied from interface:FileServiceAbre uma secao para uma transacao local no sistema de arquivos. As operacoes realizadas dentro da secao so se tornam visiveis no filesystem geral aposFileService.commit(Session); useFileService.rollback(Session)para desfaze-las.- Specified by:
openSessionin interfaceFileService- Returns:
- nova secao transacional de filesystem
-
createTemporaryFile
Description copied from interface:FileServiceCria e comita um arquivo temporario- Specified by:
createTemporaryFilein interfaceFileService- Returns:
-
createTemporaryFile
Description copied from interface:FileServiceCria um arquivo temporario dentro da secao informada- Specified by:
createTemporaryFilein interfaceFileService- Parameters:
session-- Returns:
-
createTemporaryFile
Description copied from interface:FileServiceCria um arquivo temporario com a extensao informada- Specified by:
createTemporaryFilein interfaceFileService- Parameters:
extension-- Returns:
-
createTemporaryFile
@Transactional(propagation=REQUIRED) public File createTemporaryFile(Session session, String extension) Description copied from interface:FileServiceCria um arquivo temporario dentro da secao informada- Specified by:
createTemporaryFilein interfaceFileService- Parameters:
session-extension-- Returns:
-
createTemporaryDirectory
Description copied from interface:FileServiceCria um diretorio temporario- Specified by:
createTemporaryDirectoryin interfaceFileService- Returns:
-
createTemporaryDirectory
Description copied from interface:FileServiceCria um arquivo temporario dentro da secao informada- Specified by:
createTemporaryDirectoryin interfaceFileService- Parameters:
session-- Returns:
-
createTemporaryFile
@Transactional(propagation=REQUIRED) public File createTemporaryFile(Session session, String extension, String name) Description copied from interface:FileServiceCria um arquivo temporario dentro da secao informada- Specified by:
createTemporaryFilein interfaceFileService- Parameters:
session-name-- Returns:
-
writeTemporaryFile
Description copied from interface:FileServiceEscreve um arquivo temporario de forma transacional, a partir do stream especificado- Specified by:
writeTemporaryFilein interfaceFileService- Parameters:
inputStream-- Returns:
-
writeTemporaryFileAsPdfa
Description copied from interface:FileServiceEscreve um arquivo temporario de forma transacional, a partir do stream especificado, compatÃvel com PDF/A- Specified by:
writeTemporaryFileAsPdfain interfaceFileService- Parameters:
pdfInputStream-- Returns:
-
copyAsTemporaryFile
Description copied from interface:FileServiceCopia o arquivo para a area de transferencia- Specified by:
copyAsTemporaryFilein interfaceFileService- Parameters:
source-- Returns:
- Throws:
IOException
-
createInSessionOutputStream
Description copied from interface:FileServiceArquivos ainda sob dominio da secao so podem ser escritos/lidos por streams especiais. Use este metodo para cria-los- Specified by:
createInSessionOutputStreamin interfaceFileService- Parameters:
fileInSession-- Returns:
-
createInSessionInputStream
Description copied from interface:FileServiceArquivos ainda sob dominio da secao so podem ser escritos/lidos por streams especiais. Use este metodo para cria-los- Specified by:
createInSessionInputStreamin interfaceFileService- Parameters:
fileInSession-- Returns:
-
persistFile
Description copied from interface:FileServicePersiste o arquivo temporario dentro da estrutura de armazenamento do Vitruvio, em uma transacao propria que ja e comitada.- Specified by:
persistFilein interfaceFileService- Parameters:
metadata- metadados do arquivo (nome, tipo, etc.)file- arquivo fisico em area temporaria- Returns:
- entidade de arquivo persistida
-
persistFile
@Transactional(propagation=REQUIRED) public Arquivo persistFile(Session session, Arquivo metadata, File file) Description copied from interface:FileServicePersiste 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 viaFileService.commit(Session).- Specified by:
persistFilein interfaceFileService- Parameters:
session- secao transacional ativametadata- metadados do arquivo (nome, tipo, etc.)file- arquivo fisico em area temporaria- Returns:
- entidade de arquivo persistida (ainda nao comitada)
-
persistMiniature
@Transactional(propagation=REQUIRED) public void persistMiniature(Arquivo metadata) Description copied from interface:FileServicePersiste miniaturas de imagens conforme configuracao- Specified by:
persistMiniaturein interfaceFileService- Parameters:
metadata-
-
deleteMiniature
@Transactional(propagation=REQUIRED) public void deleteMiniature(Arquivo metadata) Description copied from interface:FileServiceDeleta miniaturas de imagens geradas- Specified by:
deleteMiniaturein interfaceFileService- Parameters:
metadata-
-
updateFile
Description copied from interface:FileServiceAtualiza o arquivo referente aos metadados- Specified by:
updateFilein interfaceFileService- Parameters:
metadata-file-- Returns:
-
updateFile
@Transactional(propagation=REQUIRED) public Arquivo updateFile(Session session, Arquivo metadata, File file) Description copied from interface:FileServiceAtualiza o arquivo referente aos metadados- Specified by:
updateFilein interfaceFileService- Parameters:
metadata-file-- Returns:
-
createStream
Description copied from interface:FileServiceCria um stream de leitura do ID de arquivo informado- Specified by:
createStreamin interfaceFileService- Parameters:
fileId-- Returns:
-
createStream
Description copied from interface:FileServiceCria um stream de leitura do arquivo informado- Specified by:
createStreamin interfaceFileService- Parameters:
arquivo-- Returns:
-
getFile
Description copied from interface:FileServiceRetorna uma referencia ao arquivo no local de armazenamento designado pela configuracao vigente- Specified by:
getFilein interfaceFileService- Parameters:
fileId-- Returns:
-
getFile
Description copied from interface:FileServiceRetorna uma referencia ao arquivo no local de armazenamento designado pela configuracao vigente- Specified by:
getFilein interfaceFileService- Parameters:
arquivo-- Returns:
-
getMetadataById
@Transactional(propagation=SUPPORTS, noRollbackFor=javax.persistence.EntityNotFoundException.class) public Arquivo getMetadataById(Integer id) Description copied from interface:FileServiceGet File Metadata- Specified by:
getMetadataByIdin interfaceFileService- Parameters:
id-- Returns:
-
getFile
Description copied from interface:FileServiceRetorna uma referencia ao arquivo no local de armazenamento designado pela configuracao vigente- Specified by:
getFilein interfaceFileService- Returns:
-
getMiniatureFile
Description copied from interface:FileServiceRetorna uma referencia ao arquivo no local de armazenamento- Specified by:
getMiniatureFilein interfaceFileService- Parameters:
arquivo-largura-altura-- Returns:
-
getMiniatureFile
Description copied from interface:FileServiceObtem uma referencia para o arquivo da Miniatura de um determinado anexo- Specified by:
getMiniatureFilein interfaceFileService- Parameters:
largura-altura-- Returns:
-
getMiniatureFile
Description copied from interface:FileServiceObtem uma referencia para o arquivo da miniatura- Specified by:
getMiniatureFilein interfaceFileService- Parameters:
miniatureId-- Returns:
-
createMiniatureStream
Description copied from interface:FileServiceCria um stream de leitura para de uma miniatura- Specified by:
createMiniatureStreamin interfaceFileService- Parameters:
miniature-- Returns:
-
createMiniatureStream
Description copied from interface:FileServiceCria um stream de leitura para uma miniatura identificada por seu ID- Specified by:
createMiniatureStreamin interfaceFileService- Parameters:
miniatureId-- Returns:
-
createMiniatureStream
Description copied from interface:FileServiceCria um stream de leitura para uma miniatura, de acordo com seu arquivo de origem e suas dimensoes- Specified by:
createMiniatureStreamin interfaceFileService- Parameters:
file-largura-altura-- Returns:
- Stream de leitura ou nulo
-
createMiniatureStream
Description copied from interface:FileServiceCria um stream de leitura para uma miniatura, de acordo com seu arquivo de origem e suas dimensoes- Specified by:
createMiniatureStreamin interfaceFileService- Parameters:
largura-altura-- Returns:
- Stream de leitura ou nulo
-
getMiniatures
Description copied from interface:FileServiceObtem uma lista de arquivos miniatura- Specified by:
getMiniaturesin interfaceFileService- Parameters:
arquivo-- Returns:
-
deleteFile
Description copied from interface:FileServiceRemove o arquivo permanentemente, incluindo seus metadados- Specified by:
deleteFilein interfaceFileService- Parameters:
fileId-
-
deleteFile
@Transactional(propagation=REQUIRED) public void deleteFile(Arquivo arquivo) Description copied from interface:FileServiceRemove o arquivo permanentemente, incluindo seus metadados- Specified by:
deleteFilein interfaceFileService- Parameters:
arquivo-
-
deleteFile
Description copied from interface:FileServiceExcluir o arquivo utilizando a secao informada- Specified by:
deleteFilein interfaceFileService- Parameters:
session-arquivo-
-
deleteFile
Description copied from interface:FileServiceExcluir o arquivo utilizando a secao informada- Specified by:
deleteFilein interfaceFileService- Parameters:
session-fileId-
-
generateSha1SUM
Description copied from interface:FileServiceGera o hash sha1 de determinado arquivo disponivel apenas dentro determinada secao- Specified by:
generateSha1SUMin interfaceFileService- Parameters:
session-file-- Returns:
-
generateSha1SUM
Description copied from interface:FileServiceGera o hash SHA1 de um arquivo ja disponivel no filesystem geral- Specified by:
generateSha1SUMin interfaceFileService- Parameters:
file-- Returns:
-
rollback
Description copied from interface:FileServiceEfetua rollback da transacao logando possiveis problemas- Specified by:
rollbackin interfaceFileService- Parameters:
s-
-
commit
Description copied from interface:FileServiceEfetua commit da transacao logando possiveis problemas- Specified by:
commitin interfaceFileService- Parameters:
s-
-
getHumanReadableByteSize
Description copied from interface:FileServiceObtem um tamanho legivel para exibicao ao usuario- Specified by:
getHumanReadableByteSizein interfaceFileService- Parameters:
size-- Returns:
-
getHumanReadableByteSize
Description copied from interface:FileServiceObtem um tamanho legivel para exibicao ao usuario- Specified by:
getHumanReadableByteSizein interfaceFileService- Parameters:
arquivo-- Returns:
-
buildRandomFileName
Description copied from interface:FileServiceGera um nome de arquivo randomico- Specified by:
buildRandomFileNamein interfaceFileService- Returns:
-
buildRandomFileName
Description copied from interface:FileServiceGera um nome com caracteres randomicos- Specified by:
buildRandomFileNamein interfaceFileService- Parameters:
extension-- Returns:
-
buildRandomFileName
Description copied from interface:FileServiceGera um nome com caracteres randomicos- Specified by:
buildRandomFileNamein interfaceFileService- Parameters:
prefix-extension-- Returns:
-
generateTemporaryZipFileForIds
Description copied from interface:FileServiceConstroi 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.- Specified by:
generateTemporaryZipFileForIdsin interfaceFileService- Parameters:
fileIds- ids dos arquivos a incluir no ZIP- Returns:
- arquivo ZIP temporario gerado
-
generateTemporaryZipForFiles
Description copied from interface:FileServiceProduz um arquivo zippado com os arquivos informados- Specified by:
generateTemporaryZipForFilesin interfaceFileService- Parameters:
files-- Returns:
-
generateTemporaryZipForFiles
Description copied from interface:FileServiceAPI- Specified by:
generateTemporaryZipForFilesin interfaceFileService- Parameters:
files- referencia a arquivos no FSreplacementNames- Nomes a serem usados no arquivo zip- Returns:
-
extractZipFile
Description copied from interface:FileServiceExtrai o arquivo persistido para um diretorio temporario- Specified by:
extractZipFilein interfaceFileService- Parameters:
fileId-- Returns:
- Throws:
IOException
-
extractZipFile
Description copied from interface:FileServiceExtrai o arquivo informado para um diretorio temporario- Specified by:
extractZipFilein interfaceFileService- Parameters:
file-- Returns:
- Throws:
IOException
-
closeResource
Description copied from interface:FileServiceUtilitario para encerramento silencioso de referencias- Specified by:
closeResourcein interfaceFileService- Parameters:
resource-
-
copyFileToDestination
Description copied from interface:FileServiceCopia 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- Specified by:
copyFileToDestinationin interfaceFileService- Parameters:
source-- Throws:
IOException
-
copyFileToDestination
public void copyFileToDestination(File source, String destination, String destinationName) throws IOException Description copied from interface:FileServiceCopia 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- Specified by:
copyFileToDestinationin interfaceFileService- Parameters:
source-- Throws:
IOException
-
copyFileToDestination
public void copyFileToDestination(File source, String destination, String destinationName, boolean overwrite, boolean createPathIfNecessary) throws IOException Description copied from interface:FileServiceCopia o arquivo para o local de destino- Specified by:
copyFileToDestinationin interfaceFileService- Parameters:
source-destination-overwrite-createPathIfNecessary-- Throws:
IOException
-
registerFileAsTemporaryDownload
@Transactional(propagation=REQUIRED) public DownloadTemporario registerFileAsTemporaryDownload(Arquivo arquivo, DownloadTemporario metadata) Description copied from interface:FileServiceRegistra um arquivo ja persistido como um arquivo de acesso temporario- Specified by:
registerFileAsTemporaryDownloadin interfaceFileService- Parameters:
arquivo- Entidade persistidametadata- Arquivo de metadados. Caso um UUID nao tenha sido atribuido, um sera gerado dinamicamente- Returns:
- Entidade persistida
-
getTemporaryDownloadByUUID
@Transactional(propagation=SUPPORTS) public DownloadTemporario getTemporaryDownloadByUUID(String uuid) Description copied from interface:FileServiceObtem uma referencia para a entidade de download temporario ou NULO caso nenhuma seja encontrada com este UUID- Specified by:
getTemporaryDownloadByUUIDin interfaceFileService- Parameters:
uuid-- Returns:
-
markDownloadToRemoval
Description copied from interface:FileServiceMarca a entidade como elegivel para remocao pelas rotinas de limpeza- Specified by:
markDownloadToRemovalin interfaceFileService- Parameters:
uuid-
-
removeTemporaryDownload
@Transactional(propagation=REQUIRED) public void removeTemporaryDownload(DownloadTemporario entity) Description copied from interface:FileServiceRemove o vinculo de acesso temporario do arquivo e tambem o arquivo referenciado fisicamente do filesystem juntamente com sua entrada na tabela de arquivos- Specified by:
removeTemporaryDownloadin interfaceFileService- Parameters:
entity-
-
removeTemporaryDownload
@Transactional(propagation=REQUIRED) public void removeTemporaryDownload(DownloadTemporario entity, boolean removeFile) Description copied from interface:FileServiceRemove o vinculo de acesso temporario do arquivo e opcionalmente o arquivo da tabela de arquivos e seu arquivo do filesystem- Specified by:
removeTemporaryDownloadin interfaceFileService- Parameters:
entity-removeFile-
-
getDownloadsAllowedToBeRemoved
@Transactional(propagation=SUPPORTS) public List<DownloadTemporario> getDownloadsAllowedToBeRemoved(int limit) Description copied from interface:FileServiceObtem uma lista de downloads temporarios elegiveis para serem removidos- Specified by:
getDownloadsAllowedToBeRemovedin interfaceFileService- Parameters:
limit-- Returns:
-