Trabalhando com arquivos temporários em ambiente de produção com o tomcat

Updated . Posted . Visible to the public.

Muitas vezes precisamos trabalhar com arquivos temporários em ambiente de produção e é muito complicado definir onde estes arquivos deverão ser armazenados, visto que dependendo da pasta escolhida você terá que entrar no servidor e dar permissão de escrita e leitura nesta pasta.
Para quem trabalha com o tomcat isto fica mais fácil, pois ele disponibiliza um diretório especificamente para trabalharmos com estes arquivos. O diretório é este:

$TOMCAT_HOME/work/Catalina/

Dentro da pasta Catalina haverá uma pasta para cada war implantado no seu servidor.

Um detalhe importante é que quando o servidor é reiniciado tudo que está no diretório work é removido, visto que ele é especificamente para arquivos temporários.

Para acessar este diretório a partir de uma aplicação grails basta obter o objeto File do diretório temporário:

def grailsApplication
...
File tempDir = grailsApplication.parentContext.servletContext.getAttribute('javax.servlet.context.tempdir')

Se seu war se chamar bacon, por exemplo, quando você utilizar: tempDir.absolutePath será retornado: $TOMCAT_HOME/work/Catalina/bacon

Victor Carvalho
Last edit
Bruno Vieira
Keywords
arquivos, temporarios
Tags
Posted by Victor Carvalho to ZeroGlosa (2013-03-28 11:39)