Package br.com.davinti.vitruvio.spi
Interface FileService
- All Known Implementing Classes:
FileServiceImpl
public interface FileService
Servico transacional de manutenção de arquivos no filesystem.
- Author:
- Eduardo Frazao
-
Nested Class Summary
Nested Classes -
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 destinationPath) 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 destinationPath, 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 problemasArquivoupdateFile(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 inputStream) Escreve um arquivo temporario de forma transacional, a partir do stream especificado, compatível com PDF/A
-
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 aposcommit(Session); userollback(Session)para desfaze-las.- Returns:
- nova secao transacional de filesystem
-
createTemporaryFile
Cria um arquivo temporario dentro da secao informada- Parameters:
session-- Returns:
-
generateSha1SUM
Gera o hash sha1 de determinado arquivo disponivel apenas dentro determinada secao- Parameters:
session-file-- Returns:
-
generateSha1SUM
Gera o hash SHA1 de um arquivo ja disponivel no filesystem geral- Parameters:
file-- Returns:
-
createTemporaryFile
Cria um arquivo temporario dentro da secao informada- Parameters:
session-name-- Returns:
-
createTemporaryFile
File createTemporaryFile()Cria e comita um arquivo temporario- Returns:
-
createTemporaryFile
Cria um arquivo temporario dentro da secao informada- Parameters:
session-extension-- Returns:
-
createTemporaryFile
Cria um arquivo temporario com a extensao informada- Parameters:
extension-- Returns:
-
createTemporaryDirectory
File createTemporaryDirectory()Cria um diretorio temporario- Returns:
-
createTemporaryDirectory
Cria um arquivo temporario dentro da secao informada- Parameters:
session-extension-- Returns:
-
writeTemporaryFile
Escreve um arquivo temporario de forma transacional, a partir do stream especificado- Parameters:
inputStream-- Returns:
-
writeTemporaryFileAsPdfa
Escreve um arquivo temporario de forma transacional, a partir do stream especificado, compatível com PDF/A- Parameters:
inputStream-- Returns:
-
createInSessionOutputStream
Arquivos ainda sob dominio da secao so podem ser escritos/lidos por streams especiais. Use este metodo para cria-los- Parameters:
fileInSession-- Returns:
-
createInSessionInputStream
Arquivos ainda sob dominio da secao so podem ser escritos/lidos por streams especiais. Use este metodo para cria-los- Parameters:
fileInSession-- Returns:
-
copyAsTemporaryFile
Copia o arquivo para a area de transferencia- Parameters:
source-- Returns:
- Throws:
IOException
-
persistFile
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
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 viacommit(Session).- 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
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
Atualiza o arquivo referente aos metadados- Parameters:
metadata-file-- Returns:
-
updateFile
Atualiza o arquivo referente aos metadados- Parameters:
metadata-file-- Returns:
-
createStream
Cria um stream de leitura do ID de arquivo informado- Parameters:
fileId-- Returns:
-
createStream
Cria um stream de leitura do arquivo informado- Parameters:
arquivo-- Returns:
-
getFile
Retorna uma referencia ao arquivo no local de armazenamento designado pela configuracao vigente- Parameters:
fieldId-- Returns:
-
getFile
Retorna uma referencia ao arquivo no local de armazenamento designado pela configuracao vigente- Parameters:
arquivo-- Returns:
-
getMetadataById
Get File Metadata- Parameters:
id-- Returns:
-
getFile
Retorna uma referencia ao arquivo no local de armazenamento designado pela configuracao vigente- Parameters:
arquivo-- Returns:
-
getMiniatureFile
Retorna uma referencia ao arquivo no local de armazenamento- Parameters:
arquivo-largura-altura-- Returns:
-
getMiniatureFile
Obtem uma referencia para o arquivo da Miniatura de um determinado anexo- Parameters:
largura-altura-arquivo-- Returns:
-
getMiniatureFile
Obtem uma referencia para o arquivo da miniatura- Parameters:
miniatureId-- Returns:
-
createMiniatureStream
Cria um stream de leitura para de uma miniatura- Parameters:
miniature-- Returns:
-
createMiniatureStream
Cria um stream de leitura para uma miniatura identificada por seu ID- Parameters:
miniatureId-- Returns:
-
createMiniatureStream
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
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
Obtem uma lista de arquivos miniatura- Parameters:
arquivo-- Returns:
-
deleteFile
Remove o arquivo permanentemente, incluindo seus metadados- Parameters:
fileId-
-
deleteFile
void deleteFile(Arquivo arquivo) Remove o arquivo permanentemente, incluindo seus metadados- Parameters:
arquivo-
-
deleteFile
Excluir o arquivo utilizando a secao informada- Parameters:
session-arquivo-
-
deleteFile
Excluir o arquivo utilizando a secao informada- Parameters:
session-fileId-
-
rollback
Efetua rollback da transacao logando possiveis problemas- Parameters:
s-
-
commit
Efetua commit da transacao logando possiveis problemas- Parameters:
s-
-
getHumanReadableByteSize
Obtem um tamanho legivel para exibicao ao usuario- Parameters:
size-- Returns:
-
getHumanReadableByteSize
Obtem um tamanho legivel para exibicao ao usuario- Parameters:
arquivo-- Returns:
-
buildRandomFileName
String buildRandomFileName()Gera um nome de arquivo randomico- Returns:
-
buildRandomFileName
Gera um nome com caracteres randomicos- Parameters:
extension-- Returns:
-
buildRandomFileName
Gera um nome com caracteres randomicos- Parameters:
prefix-extension-- Returns:
-
generateTemporaryZipFileForIds
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
Produz um arquivo zippado com os arquivos informados- Parameters:
files-- Returns:
-
generateTemporaryZipForFiles
API- Parameters:
files- referencia a arquivos no FSreplacementNames- Nomes a serem usados no arquivo zip- Returns:
-
extractZipFile
Extrai o arquivo persistido para um diretorio temporario- Parameters:
fileId-- Returns:
- Throws:
IOException
-
extractZipFile
Extrai o arquivo informado para um diretorio temporario- Parameters:
file-- Returns:
- Throws:
IOException
-
closeResource
Utilitario para encerramento silencioso de referencias- Parameters:
resource-
-
copyFileToDestination
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 persistidametadata- Arquivo de metadados. Caso um UUID nao tenha sido atribuido, um sera gerado dinamicamente- Returns:
- Entidade persistida
-
getTemporaryDownloadByUUID
Obtem uma referencia para a entidade de download temporario ou NULO caso nenhuma seja encontrada com este UUID- Parameters:
uuid-- Returns:
-
markDownloadToRemoval
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
Obtem uma lista de downloads temporarios elegiveis para serem removidos- Parameters:
limit-- Returns:
-