Interface StreamingFileUpload

All Superinterfaces:
FileUpload, Publisher<PartData>
All Known Implementing Classes:
NettyStreamingFileUpload

public interface StreamingFileUpload extends FileUpload, Publisher<PartData>

Represents a part of a MediaType.MULTIPART_FORM_DATA request.

The StreamingFileUpload may be incomplete when first received, in which case the consumer can subscribe to the file upload to process the data a chunk at a time.

The transferTo(String) method can be used whether the upload is complete or not. If it is not complete the framework will automatically subscribe to the upload and transfer the data chunk by chunk in a non-blocking manner

All I/O operation return a Publisher that runs on the the configured I/O ExecutorService

Since:
1.0
Author:
Graeme Rocher
  • Method Details

    • transferTo

      @Deprecated Publisher<Boolean> transferTo(String location)
      Deprecated.

      A convenience method to write this uploaded item to disk.

      This method will return a no-op Publisher if called multiple times for the same location

      Parameters:
      location - the name of the file to which the stream will be written. The file is created relative to the location as specified in the MultipartConfiguration
      Returns:
      A Publisher that outputs whether the transfer was successful
    • transferTo

      Publisher<Boolean> transferTo(File destination)

      A convenience method to write this uploaded item to disk.

      This method will return a no-op Publisher if called multiple times for the same location

      Parameters:
      destination - the destination of the file to which the stream will be written.
      Returns:
      A Publisher that outputs whether the transfer was successful
    • transferTo

      default Publisher<Boolean> transferTo(OutputStream outputStream)

      A convenience method to write this uploaded item the provided output stream.

      Parameters:
      outputStream - the destination to which the stream will be written.
      Returns:
      A Publisher that outputs whether the transfer was successful
      Since:
      3.1.0
    • delete

      Publisher<Boolean> delete()
      Deletes the underlying storage for a file item, including deleting any associated temporary disk file.
      Returns:
      A Publisher that outputs whether to delete was successful
    • asInputStream

      @NonNull default @NonNull InputStream asInputStream()
      Create an InputStream that reads this file. The returned stream must be closed after use. The stream may block when data isn't yet available.
      Returns:
      An InputStream that reads this file's contents
      Since:
      4.2.0