def download
      return io if io.is_a?(Tempfile)

      Tempfile.new(id, binmode: true).tap do |tempfile|
        IO.copy_stream(io, tempfile)
        tempfile.rewind
        tempfile.fsync
      end
    end
def download
      return io if io.is_a?(Tempfile)

      Tempfile.new(id, binmode: true).tap do |tempfile|
        IO.copy_stream(io, tempfile)
        tempfile.rewind
        tempfile.fsync
      end
    end
Downloads the file to a Tempfile on disk and returns this tempfile.

 @example
   file = backend.upload(StringIO.new("hello"))
   tempfile = file.download
   File.read(tempfile.path) # => "hello"

 @return [Tempfile] a tempfile with the file's content