Class HttpFileUploadManager

java.lang.Object
org.jivesoftware.smack.Manager
org.jivesoftware.smackx.httpfileupload.HttpFileUploadManager

public final class HttpFileUploadManager extends org.jivesoftware.smack.Manager
A manager for XEP-0363: HTTP File Upload.
See Also:
  • Field Details

  • Method Details

    • getInstanceFor

      public static HttpFileUploadManager getInstanceFor(org.jivesoftware.smack.XMPPConnection connection)
      Obtain the HttpFileUploadManager responsible for a connection.
      Parameters:
      connection - the connection object.
      Returns:
      a HttpFileUploadManager instance
    • discoverUploadService

      public boolean discoverUploadService() throws org.jivesoftware.smack.XMPPException.XMPPErrorException, org.jivesoftware.smack.SmackException.NotConnectedException, InterruptedException, org.jivesoftware.smack.SmackException.NoResponseException
      Discover upload service. Called automatically when connection is authenticated. Note that this is a synchronous call -- Smack must wait for the server response.
      Returns:
      true if upload service was discovered
      Throws:
      org.jivesoftware.smack.XMPPException.XMPPErrorException - if there was an XMPP error returned.
      org.jivesoftware.smack.SmackException.NotConnectedException - if the XMPP connection is not connected.
      InterruptedException - if the calling thread was interrupted.
      org.jivesoftware.smack.SmackException.NoResponseException - if there was no response from the remote entity.
    • isUploadServiceDiscovered

      public boolean isUploadServiceDiscovered()
      Check if upload service was discovered.
      Returns:
      true if upload service was discovered
    • getDefaultUploadService

      public UploadService getDefaultUploadService()
      Get default upload service if it was discovered.
      Returns:
      upload service JID or null if not available
    • uploadFile

      public URL uploadFile(File file) throws InterruptedException, org.jivesoftware.smack.XMPPException.XMPPErrorException, org.jivesoftware.smack.SmackException, IOException
      Request slot and uploaded file to HTTP file upload service. You don't need to request slot and upload file separately, this method will do both. Note that this is a synchronous call -- Smack must wait for the server response.
      Parameters:
      file - file to be uploaded
      Returns:
      public URL for sharing uploaded file
      Throws:
      InterruptedException - if the calling thread was interrupted.
      org.jivesoftware.smack.XMPPException.XMPPErrorException - if there was an XMPP error returned.
      org.jivesoftware.smack.SmackException - if Smack detected an exceptional situation.
      IOException - in case of HTTP upload errors
    • uploadFile

      public URL uploadFile(File file, UploadProgressListener listener) throws InterruptedException, org.jivesoftware.smack.XMPPException.XMPPErrorException, org.jivesoftware.smack.SmackException, IOException
      Request slot and uploaded file to HTTP file upload service with progress callback. You don't need to request slot and upload file separately, this method will do both. Note that this is a synchronous call -- Smack must wait for the server response.
      Parameters:
      file - file to be uploaded
      listener - Upload progress listener or null
      Returns:
      public URL for sharing uploaded file
      Throws:
      InterruptedException - if the calling thread was interrupted.
      org.jivesoftware.smack.XMPPException.XMPPErrorException - if there was an XMPP error returned.
      org.jivesoftware.smack.SmackException - if Smack detected an exceptional situation.
      IOException - if an I/O error occurred.
    • uploadFile

      public URL uploadFile(InputStream inputStream, String fileName, long fileSize) throws org.jivesoftware.smack.XMPPException.XMPPErrorException, InterruptedException, org.jivesoftware.smack.SmackException, IOException
      Request slot and uploaded stream to HTTP upload service. You don't need to request slot and upload input stream separately, this method will do both. Note that this is a synchronous call -- Smack must wait for the server response.
      Parameters:
      inputStream - Input stream used for the upload.
      fileName - Name of the file.
      fileSize - Size of the file.
      Returns:
      public URL for sharing uploaded file
      Throws:
      org.jivesoftware.smack.XMPPException.XMPPErrorException - XMPPErrorException if there was an XMPP error returned.
      InterruptedException - If the calling thread was interrupted.
      org.jivesoftware.smack.SmackException - If Smack detected an exceptional situation.
      IOException - If an I/O error occurred.
    • uploadFile

      public URL uploadFile(InputStream inputStream, String fileName, long fileSize, UploadProgressListener listener) throws org.jivesoftware.smack.XMPPException.XMPPErrorException, InterruptedException, org.jivesoftware.smack.SmackException, IOException
      Request slot and uploaded stream to HTTP upload service. You don't need to request slot and upload input stream separately, this method will do both. Note that this is a synchronous call -- Smack must wait for the server response.
      Parameters:
      inputStream - Input stream used for the upload.
      fileName - Name of the file.
      fileSize - file size in bytes.
      listener - upload progress listener or null.
      Returns:
      public URL for sharing uploaded file
      Throws:
      org.jivesoftware.smack.XMPPException.XMPPErrorException - XMPPErrorException if there was an XMPP error returned.
      InterruptedException - If the calling thread was interrupted.
      org.jivesoftware.smack.SmackException - If Smack detected an exceptional situation.
      IOException - If an I/O error occurred.
    • requestSlot

      public Slot requestSlot(String filename, long fileSize) throws InterruptedException, org.jivesoftware.smack.XMPPException.XMPPErrorException, org.jivesoftware.smack.SmackException
      Request a new upload slot from default upload service (if discovered). When you get slot you should upload file to PUT URL and share GET URL. Note that this is a synchronous call -- Smack must wait for the server response.
      Parameters:
      filename - name of file to be uploaded
      fileSize - file size in bytes.
      Returns:
      file upload Slot in case of success
      Throws:
      IllegalArgumentException - if fileSize is less than or equal to zero or greater than the maximum size supported by the service.
      InterruptedException - if the calling thread was interrupted.
      org.jivesoftware.smack.XMPPException.XMPPErrorException - if there was an XMPP error returned.
      org.jivesoftware.smack.SmackException - if smack exception.
    • requestSlot

      public Slot requestSlot(String filename, long fileSize, String contentType) throws org.jivesoftware.smack.SmackException, InterruptedException, org.jivesoftware.smack.XMPPException.XMPPErrorException
      Request a new upload slot with optional content type from default upload service (if discovered). When you get slot you should upload file to PUT URL and share GET URL. Note that this is a synchronous call -- Smack must wait for the server response.
      Parameters:
      filename - name of file to be uploaded
      fileSize - file size in bytes.
      contentType - file content-type or null
      Returns:
      file upload Slot in case of success
      Throws:
      IllegalArgumentException - if fileSize is less than or equal to zero or greater than the maximum size supported by the service.
      org.jivesoftware.smack.SmackException.NotConnectedException - if the XMPP connection is not connected.
      InterruptedException - if the calling thread was interrupted.
      org.jivesoftware.smack.XMPPException.XMPPErrorException - if there was an XMPP error returned.
      org.jivesoftware.smack.SmackException - if smack exception.
    • requestSlot

      public Slot requestSlot(String filename, long fileSize, String contentType, org.jxmpp.jid.DomainBareJid uploadServiceAddress) throws org.jivesoftware.smack.SmackException, InterruptedException, org.jivesoftware.smack.XMPPException.XMPPErrorException
      Request a new upload slot with optional content type from custom upload service. When you get slot you should upload file to PUT URL and share GET URL. Note that this is a synchronous call -- Smack must wait for the server response.
      Parameters:
      filename - name of file to be uploaded
      fileSize - file size in bytes.
      contentType - file content-type or null
      uploadServiceAddress - the address of the upload service to use or null for default one
      Returns:
      file upload Slot in case of success
      Throws:
      IllegalArgumentException - if fileSize is less than or equal to zero or greater than the maximum size supported by the service.
      org.jivesoftware.smack.SmackException - if Smack detected an exceptional situation.
      InterruptedException - if the calling thread was interrupted.
      org.jivesoftware.smack.XMPPException.XMPPErrorException - if there was an XMPP error returned.
    • setTlsContext

      public void setTlsContext(SSLContext tlsContext)
    • namespaceToVersion

      public static UploadService.Version namespaceToVersion(String namespace)