TempFileManager¶
Class to be used by Working with OMERO and server components to allow a uniform creation of temporary files and folders with a best-effort guarantee of deleting the resources on exit. The manager searches three locations in order, taking the first which allows lockable write-access (See #1653):
- The environment property setting
OMERO_TMPDIR
- The user’s home directory, for example specified in Java via
System.getProperty("user.home")
- The system temp directory, in Java
System.getProperty("java.io.tmpdir")
and in Pythontempfile.gettempdir()
Creating temporary files¶
For the user “ralph”,
from omero.util.temp_files import create_path
path = create_path("omero",".tmp")
or
import omero.util.TempFileManager
File file = TempFileManager.create_path("omero",".tmp")
both produce a file under the directory:
/tmp/omero_ralph/$PID/omero$RANDOM.tmp
where $PID is the current process id and $RANDOM is some random sequence of alphanumeric characters.
Removing files¶
If remove_path
is called on the return value of create_path
,
then the temporary resources will be cleaned up immediately. Otherwise,
when the Java or Python process exits, they will be deleted. This is
achieved in Java through Runtime#addShutdownHook(Thread)
and in
Python via atexit.register()
.
Creating directories¶
If an entire directory with a unique directory is needed, pass “true” as
the “folder” argument of the create_path
method:
create_path("omero", ".tmp", folder = True)
and
TempFileManager.create_path("omero", ".tmp", true);
Note
All contents of the generated directory will be deleted.
See also