Skip to content

Latest commit

 

History

History
74 lines (48 loc) · 1.79 KB

TempFileManager.rst

File metadata and controls

74 lines (48 loc) · 1.79 KB

TempFileManager

Class to be used by 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 Python tempfile.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.

1534