I am using the imagick library to resizing and cropping the images in a http handler. Which doesn\'t write anything in /tmp
folder. But as i can a lot of these
Temporary / intermediate files should be automatically cleaned-up by the calling ImageMagick thread. The pattern-behavior you are describing hints at a bug in the application using ImageMagick.
I would suggest...
imagick.Initialize
& imagick.Terminate
routines are calledAnd if nothing else works, use the environment variable MAGICK_TMPDIR
to control where the imagemagick artifacts are written to.
The imagick.Initialize
wraps the underlying MagickCoreGenesis, and imagick.Terminate
the MagickCoreTerminus routine. They are important for managing the environment in which ImageMagick operates. They should be called on the worker thread that will handle any ImageMagick tasks, so in your case, serveHTTP
method. BUT it would not be optimal to perform such routines with every HTTP request, and an additional condition should be evaluated -- if possible.
func serveHTTP(w http.ResponseWriter, r *http.Request) {
// if request will do image work
imagick.Initialize()
defer imagick.Terminate()
// ... image methods ...
// end if
}