Package com.logicaldoc.sharefile
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
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
createFolder(String parentId, String name, String description)
Create a new folder in the given parent folder.String
createPath(String parentId, String path)
Creates a pathvoid
deleteItem(String id)
Delete an Item by Id.void
downloadItem(String id, File file)
Download a single Item.String
getAccessToken()
String
getApiBaseUrl()
String
getAuthBaseUrl()
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.String
getCallbackUrl()
String
getClientId()
String
getClientSecret()
SFile
getItemById(String id)
Gets a single Item by Id.SFile
getItemByPath(String parentId, String path)
Retrieves an item from its path.String
getItemPath(String parentId, String itemId)
Constructs the path of a given element, optionally relative to a given parent folder.String
getRefreshToken()
List<SFile>
getRoot()
Get the root level Item for the provided user.String
getTokenBaseUrl()
long
getUserId()
List<SFile>
list(String folderId)
Get a folder using some of the common query parameters that are available.List<SFile>
listFilesInTree(String folderId)
void
retrieveAccessToken()
Shortcut for retrieveAccessToken(null);void
retrieveAccessToken(String authorizationToken)
This is the second step of the authentication process.void
saveSettings()
Saves the ShareFile settingsvoid
setAccessToken(String accessToken)
void
setApiBaseUrl(String apiBaseUrl)
void
setClientId(String clientId)
void
setClientSecret(String clientSecret)
void
setRefreshToken(String refreshToken)
void
setTokenBaseUrl(String tokenBaseUrl)
void
updateItem(String id, String name, String description)
Update the name and description of an Item.void
uploadFile(String parentId, File file, String filename)
Uploads a File using the Standard upload method with a multipart/form mime encoded POST.void
uploadFileIntoPath(String parentId, String path, File file)
Uploads a File using the Standard upload method with a multipart/form mime encoded POST.
-
-
-
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 at data layer
-
-
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 errorcom.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 bygetAuthorizationUrl()
.
For a test access token. See https://api.sharefile.com/rest/oauth2.aspx- Parameters:
authorizationToken
- optional authorization code- Throws:
IOException
- A communication errorcom.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 serverIOException
- error in the communication with the FileShare serverParseException
- 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 serverParseException
- 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 pathpath
- - an Item path- Returns:
- the file
- Throws:
IOException
- error in the FileShare serverParseException
- 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 pathitemId
- ID of the item to process- Returns:
- The path of the given element
- Throws:
IOException
- error in the FileShare serverParseException
- 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 serverParseException
- bad communication protocol
-
createPath
public String createPath(String parentId, String path) throws IOException, ParseException
Creates a path- Parameters:
parentId
- If specified identifies the parent folderpath
- The path to create /folder1/folder2- Returns:
- identifier of the created folder
- Throws:
IOException
- error in the FileShare serverParseException
- 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 Foldername
- - the Folder namedescription
- - the Folder description- Returns:
- The new Folder's ID
- Throws:
IOException
- error in the FileShare serverParseException
- 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 updatename
- - the new name of the Itemdescription
- - the new description of the Item- Throws:
IOException
- error in the FileShare serverParseException
- 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 serverParseException
- 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 downloadfile
- - full path including file name of download destination.- Throws:
IOException
- error in the FileShare serverParseException
- 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 folderpath
- - Relative path of the file /folder/folder/filenamefile
- - the path of the file to upload- Throws:
IOException
- error in the FileShare serverParseException
- 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 Filefile
- - the path of the file to uploadfilename
- - the name of the file to create- Throws:
IOException
- error in the FileShare serverParseException
- bad communication protocol
-
-