Interface UploadStorageService

All Known Implementing Classes:
DiskStorageService, ThreadLocalCachedStorageAndLockingService

public interface UploadStorageService
Interface to a service that is able to store the (partially) uploaded files.
  • Method Details

    • getUploadInfo

      UploadInfo getUploadInfo(String uploadUrl, String ownerKey) throws IOException
      Method to retrieve the upload info by its upload URL.
      Parameters:
      uploadUrl - The URL corresponding to this upload. This parameter can be null.
      ownerKey - A key representing the owner of the upload
      Returns:
      The upload info matching the given URL, or null when not found.
      Throws:
      IOException
    • getUploadInfo

      UploadInfo getUploadInfo(UploadId id) throws IOException
      Method to retrieve the upload info by its ID.
      Parameters:
      id - The ID of the upload
      Returns:
      The matching upload info
      Throws:
      IOException - When the service is not able to retrieve the upload information
    • getUploadUri

      String getUploadUri()
      The URI which is configured as the upload endpoint.
      Returns:
      The URI
    • append

      UploadInfo append(UploadInfo upload, InputStream inputStream) throws IOException, TusException
      Append the bytes in the give InputStream to the upload with the given ID starting at the provided offset. This method also updates the UploadInfo corresponding to this upload. The Upload Storage server should not exceed its max upload size when writing bytes.
      Parameters:
      upload - The ID of the upload
      inputStream - The input stream containing the bytes to append
      Returns:
      The new UploadInfo for this upload
      Throws:
      IOException
      TusException
    • setMaxUploadSize

      void setMaxUploadSize(Long maxUploadSize)
      Limit the maximum upload size to the given value.
      Parameters:
      maxUploadSize - The maximum upload limit to set
    • getMaxUploadSize

      long getMaxUploadSize()
      Get the maximum upload size configured on this storage service.
      Returns:
      The maximum upload size or zero if no maximum
    • create

      UploadInfo create(UploadInfo info, String ownerKey) throws IOException
      Create an upload location with the given upload information.
      Parameters:
      info - The Upload information to use to create the new upload
      ownerKey - A key representing the owner of the upload
      Returns:
      An UploadInfo object containing the information used to create the upload and its unique ID
      Throws:
      IOException
    • update

      void update(UploadInfo uploadInfo) throws IOException, UploadNotFoundException
      Update the upload information for the provided ID.
      Parameters:
      uploadInfo - The upload info object containing the ID and information to update
      Throws:
      IOException
      UploadNotFoundException
    • getUploadedBytes

      InputStream getUploadedBytes(String uploadUri, String ownerKey) throws IOException, UploadNotFoundException
      Get the uploaded bytes corresponding to the given upload URL as a stream.
      Parameters:
      uploadUri - The URI
      ownerKey - The owner key of this upload
      Returns:
      an OutputStream containing the bytes of the upload
      Throws:
      IOException
      UploadNotFoundException
    • getUploadedBytes

      Get the uploaded bytes corresponding to the given upload ID as a stream.
      Parameters:
      id - the ID of the upload
      Returns:
      an OutputStream containing the bytes of the upload
      Throws:
      IOException - When retrieving the bytes from the storage layer fails
      UploadNotFoundException - When the proved id is not linked to an upload
    • copyUploadTo

      void copyUploadTo(UploadInfo info, OutputStream outputStream) throws UploadNotFoundException, IOException
      Copy the uploaded bytes to the given output stream.
      Parameters:
      info - The upload of which we should copy the bytes
      outputStream - The output stream where we have to copy the bytes to
      Throws:
      UploadNotFoundException
      IOException
    • cleanupExpiredUploads

      void cleanupExpiredUploads(UploadLockingService uploadLockingService) throws IOException
      Clean up any upload data that is expired according to the configured expiration time.
      Parameters:
      uploadLockingService - An UploadLockingService that can be used to check and lock uploads
      Throws:
      IOException
    • removeLastNumberOfBytes

      void removeLastNumberOfBytes(UploadInfo uploadInfo, long byteCount) throws UploadNotFoundException, IOException
      Remove the given last amount of bytes from the uploaded data.
      Parameters:
      uploadInfo - Upload of which to remove the bytes
      byteCount - The number of bytes to remove at the end
      Throws:
      UploadNotFoundException
      IOException
    • terminateUpload

      void terminateUpload(UploadInfo uploadInfo) throws UploadNotFoundException, IOException
      Terminate completed and unfinished uploads allowing the Server to free up used resources.
      Parameters:
      uploadInfo - The upload to terminate
      Throws:
      UploadNotFoundException
      IOException
    • getUploadExpirationPeriod

      Long getUploadExpirationPeriod()
      Get the expiration period of an upload in milliseconds.
      Returns:
      The number of milliseconds before an upload expires, or null if it cannot expire
    • setUploadExpirationPeriod

      void setUploadExpirationPeriod(Long uploadExpirationPeriod)
      Set the expiration period after which an in-progress upload expires.
      Parameters:
      uploadExpirationPeriod - The period in milliseconds
    • setUploadConcatenationService

      void setUploadConcatenationService(UploadConcatenationService concatenationService)
      Set the UploadConcatenationService that this upload storage service should use.
      Parameters:
      concatenationService - The UploadConcatenationService implementation to use
    • getUploadConcatenationService

      UploadConcatenationService getUploadConcatenationService()
      Return the UploadConcatenationService implementation that this upload service is using.
      Returns:
      The UploadConcatenationService that is being used
    • setIdFactory

      void setIdFactory(UploadIdFactory idFactory)
      Set an instance if IdFactory to be used for creating identities and extracting them from uploadUris.
      Parameters:
      idFactory - The UploadIdFactory to use within this storage service