Tempfile
The tempfile
plugin makes it easier to reuse a single copy of an
uploaded file on disk.
Shrine.plugin :tempfile
The plugin provides the UploadedFile#tempfile
method, which when called on an
open uploaded file will return a copy of its content on disk. The first time
the method is called the file content will cached into a temporary file and
returned. On any subsequent method calls the cached temporary file will be
returned directly. The temporary file is deleted when the uploaded file is
closed.
uploaded_file.open do # ... uploaded_file.tempfile #=> #<Tempfile:...> (file is cached) # ... uploaded_file.tempfile #=> #<Tempfile:...> (cache is returned) # ... end # tempfile is deleted # OR uploaded_file.open# ... uploaded_file.tempfile #=> #<Tempfile:...> (file is cached) # ... uploaded_file.tempfile #=> #<Tempfile:...> (cache is returned) # ... uploaded_file.close # tempfile is deleted
This plugin also modifies Shrine.with_file
to call UploadedFile#tempfile
when the given IO object is an open UploadedFile
. Since Shrine.with_file
is
typically called on the Shrine
class directly, it's recommended to load this
plugin globally.