Class ShareFile


  • public class ShareFile
    extends Object
    Facade over the ShareFile platform.
    Since:
    8.5.1
    Author:
    Marco Meschieri - LogicalDOC
    • Constructor Detail

      • ShareFile

        public ShareFile​(com.logicaldoc.core.generic.Generic settings)
        Constructor
        Parameters:
        settings - bean containing the settings
      • ShareFile

        public ShareFile​(long userId)
                  throws com.logicaldoc.core.PersistenceException
        Constructor
        Parameters:
        userId - identifier of the user
        Throws:
        com.logicaldoc.core.PersistenceException - error in the database
    • Method Detail

      • getAuthorizationUrl

        public String getAuthorizationUrl()
        This is the first authentication step to be used when it is the first time you connect or when the previous access token has expired. Generates the URL to request the authorization code the user must be redirected to. See https://api.sharefile.com/rest/oauth2.aspx
        Returns:
        the URL to redirect the user to
      • getCallbackUrl

        public String getCallbackUrl()
      • getUserId

        public long getUserId()
      • getClientId

        public String getClientId()
      • getClientSecret

        public String getClientSecret()
      • setClientId

        public void setClientId​(String clientId)
      • setApiBaseUrl

        public void setApiBaseUrl​(String apiBaseUrl)
      • getApiBaseUrl

        public String getApiBaseUrl()
      • setClientSecret

        public void setClientSecret​(String clientSecret)
      • getAuthBaseUrl

        public String getAuthBaseUrl()
      • getAccessToken

        public String getAccessToken()
      • setAccessToken

        public void setAccessToken​(String accessToken)
      • getRefreshToken

        public String getRefreshToken()
      • setRefreshToken

        public void setRefreshToken​(String refreshToken)
      • getTokenBaseUrl

        public String getTokenBaseUrl()
      • setTokenBaseUrl

        public void setTokenBaseUrl​(String tokenBaseUrl)
      • saveSettings

        public void saveSettings()
        Saves the ShareFile settings
      • retrieveAccessToken

        public void retrieveAccessToken()
                                 throws IOException,
                                        com.logicaldoc.core.security.authentication.AuthenticationException
        Shortcut for retrieveAccessToken(null);
        Throws:
        IOException - A communication error
        com.logicaldoc.core.security.authentication.AuthenticationException - The user was not authenticated by ShareFile, probably this means you need another autorization code
      • retrieveAccessToken

        public void retrieveAccessToken​(String authorizationToken)
                                 throws IOException,
                                        com.logicaldoc.core.security.authentication.AuthenticationException
        This is the second step of the authentication process. Invoke this method before invoking the others. If a refresh token is available, then it is used to get the access token, otherwise a new access token is asked using the authorization code previously saved by getAuthorizationUrl().
        For a test access token. See https://api.sharefile.com/rest/oauth2.aspx
        Parameters:
        authorizationToken - optional authorization code
        Throws:
        IOException - A communication error
        com.logicaldoc.core.security.authentication.AuthenticationException - The user was not authenticated by ShareFile, probably this means you need another autorization code
      • getRoot

        public List<SFile> getRoot()
                            throws IOException,
                                   ParseException
        Get the root level Item for the provided user. To retrieve Children the $expand=Children parameter can be added
        Returns:
        list of files
        Throws:
        org.apache.http.client.ClientProtocolException - error in the communication with the FileShare server
        IOException - error in the communication with the FileShare server
        ParseException - bad communication format
      • getItemByPath

        public SFile getItemByPath​(String parentId,
                                   String path)
                            throws IOException,
                                   ParseException
        Retrieves an item from its path. The path is of format /foldername/foldername/filename
        Parameters:
        parentId - - optional ID of the parent path
        path - - an Item path
        Returns:
        the file
        Throws:
        IOException - error in the FileShare server
        ParseException - bad communication protocol
      • getItemPath

        public String getItemPath​(String parentId,
                                  String itemId)
                           throws IOException,
                                  ParseException
        Constructs the path of a given element, optionally relative to a given parent folder.
        Parameters:
        parentId - ID of the parent folder (leave null for getting the absolute path
        itemId - ID of the item to process
        Returns:
        The path of the given element
        Throws:
        IOException - error in the FileShare server
        ParseException - bad communication protocol
      • list

        public List<SFile> list​(String folderId)
                         throws IOException,
                                ParseException
        Get a folder using some of the common query parameters that are available. This will add the expand, select parameters. The following are used: expand=Children to get any Children of the folder select=Id,Name,Children/Id,Children/Name to get the Id, Name of the folder and the Id, Name of any Children
        Parameters:
        folderId - - a Folder Id
        Returns:
        list of files
        Throws:
        IOException - error in the FileShare server
        ParseException - bad communication protocol
      • createPath

        public String createPath​(String parentId,
                                 String path)
                          throws IOException,
                                 ParseException
        Creates a path
        Parameters:
        parentId - If specified identifies the parent folder
        path - The path to create /folder1/folder2
        Returns:
        identifier of the created folder
        Throws:
        IOException - error in the FileShare server
        ParseException - bad communication protocol
      • createFolder

        public String createFolder​(String parentId,
                                   String name,
                                   String description)
                            throws IOException,
                                   ParseException
        Create a new folder in the given parent folder.
        Parameters:
        parentId - - the parent Folder in which to create the new Folder
        name - - the Folder name
        description - - the Folder description
        Returns:
        The new Folder's ID
        Throws:
        IOException - error in the FileShare server
        ParseException - bad communication protocol
      • updateItem

        public void updateItem​(String id,
                               String name,
                               String description)
                        throws IOException,
                               ParseException
        Update the name and description of an Item.
        Parameters:
        id - - the id of the Item to update
        name - - the new name of the Item
        description - - the new description of the Item
        Throws:
        IOException - error in the FileShare server
        ParseException - bad communication protocol
      • downloadItem

        public void downloadItem​(String id,
                                 File file)
                          throws IOException,
                                 ParseException
        Download a single Item.
        Parameters:
        id - - the Id of the Item to download
        file - - full path including file name of download destination.
        Throws:
        IOException - error in the FileShare server
        ParseException - bad communication protocol
      • uploadFileIntoPath

        public void uploadFileIntoPath​(String parentId,
                                       String path,
                                       File file)
                                throws IOException,
                                       ParseException
        Uploads a File using the Standard upload method with a multipart/form mime encoded POST.
        Parameters:
        parentId - - Id of the parent folder
        path - - Relative path of the file /folder/folder/filename
        file - - the path of the file to upload
        Throws:
        IOException - error in the FileShare server
        ParseException - bad communication protocol
      • uploadFile

        public void uploadFile​(String parentId,
                               File file,
                               String filename)
                        throws IOException,
                               ParseException
        Uploads a File using the Standard upload method with a multipart/form mime encoded POST.
        Parameters:
        parentId - - where to upload the File
        file - - the path of the file to upload
        filename - - the name of the file to create
        Throws:
        IOException - error in the FileShare server
        ParseException - bad communication protocol