Class ShareFile

java.lang.Object
com.logicaldoc.sharefile.ShareFile

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

    • 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 at data layer
  • Method Details

    • 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.hc.client5.http.ClientProtocolException - error in the communication with the FileShare server
      IOException - error in the communication with the FileShare server
      ParseException - bad communication format
    • getItemById

      public SFile getItemById(String id) throws IOException, ParseException
      Gets a single Item by Id.
      Parameters:
      id - - an Item Id
      Returns:
      the file
      Throws:
      IOException - error in the FileShare server
      ParseException - bad communication protocol
    • 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
    • listFilesInTree

      public List<SFile> listFilesInTree(String folderId) throws IOException, ParseException
      Throws:
      IOException
      ParseException
    • 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
    • deleteItem

      public void deleteItem(String id) throws IOException, ParseException
      Delete an Item by Id.
      Parameters:
      id - - the Id of the Item to delete
      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