Class JCRLocalCMISDrive

  • All Implemented Interfaces:
    org.exoplatform.services.cms.clouddrives.CloudDriveSecurity, org.exoplatform.services.cms.clouddrives.CloudDriveStorage

    public class JCRLocalCMISDrive
    extends org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive
    Local drive for CMIS provider.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  JCRLocalCMISDrive.Connect
      Connect algorithm for Template drive.
      protected class  JCRLocalCMISDrive.DocumentContent
      The Class DocumentContent.
      protected class  JCRLocalCMISDrive.FileAPI
      CloudFileAPI implementation.
      static interface  JCRLocalCMISDrive.LocalFile
      The Interface LocalFile.
      protected class  JCRLocalCMISDrive.Sync
      A facade JCRLocalCloudDrive.SyncCommand implementation.
      • Nested classes/interfaces inherited from class org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive

        org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.AbstractCommand, org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.AbstractFileAPI, org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.CommandCallable, org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.ConnectCommand, org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.DriveState, org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.ExoJCREnvironment, org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.ExoJCRSettings, org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.FileChange, org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.JCRListener, org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.NoConnectCommand, org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.NoSyncCommand, org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.SyncCommand, org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.SyncFilesCommand
      • Nested classes/interfaces inherited from class org.exoplatform.services.cms.clouddrives.CloudDrive

        org.exoplatform.services.cms.clouddrives.CloudDrive.Command, org.exoplatform.services.cms.clouddrives.CloudDrive.CommandProgress, org.exoplatform.services.cms.clouddrives.CloudDrive.FilesState, org.exoplatform.services.cms.clouddrives.CloudDrive.ListenerSupport
      • Nested classes/interfaces inherited from interface org.exoplatform.services.cms.clouddrives.CloudDriveStorage

        org.exoplatform.services.cms.clouddrives.CloudDriveStorage.Change<R extends Object>
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected AtomicLong changeIdSequencer
      The change id sequencer.
      protected String exoURL
      Platform server host URL, used for preview URL generation.
      static long FULL_SYNC_PERIOD
      Period to perform JCRLocalCMISDrive.Sync as a next sync request.
      protected static String PREVIOUS_LOCAL_NAME
      The Constant PREVIOUS_LOCAL_NAME.
      protected static String PREVIOUS_LOCAL_PARENT
      The Constant PREVIOUS_LOCAL_PARENT.
      • Fields inherited from class org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive

        accentsConverter, actionDrive, ALREADY_DONE, COMMAND_CHANGES_CHUNK, commandEnv, CURRENT_LOCALFORMAT, currentChangeId, currentConnect, currentSync, delayedSyncFiles, driveCommands, DUMMY_DATA, ECD_CLOUDDRIVE, ECD_CLOUDFILE, ECD_CLOUDFILERESOURCE, ECD_CLOUDFOLDER, ECD_IGNORED, ECD_LOCALFORMAT, EXO_DATETIME, EXO_MODIFY, EXO_THUMBNAIL, EXO_THUMBNAILS, EXO_TRASHFOLDER, fileAPI, fileChanges, fileChangeSequencer, fileCopies, fileHistory, fileRemovals, fileSynchronizers, fileTrash, finder, HISTORY_EXPIRATION, HISTORY_MAX_LENGTH, jcrListener, mimeTypes, MIX_REFERENCEABLE, MIX_VERSIONABLE, noConnect, noSync, NT_FILE, NT_FOLDER, NT_RESOURCE, NT_UNSTRUCTURED, repository, rootNodeHolder, rootSystemNodeHolder, rootUUID, rootWorkspace, sessionProviders, state, syncFilesMessages, syncLock, updating, user, USER_NODEPATH, USER_SESSIONPROVIDER, USER_WORKSPACE, workerExecutor
      • Fields inherited from class org.exoplatform.services.cms.clouddrives.CloudDrive

        listeners, LOG
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected JCRLocalCMISDrive​(CMISConnector.API apiBuilder, javax.jcr.Node driveNode, org.exoplatform.services.jcr.ext.app.SessionProviderService sessionProviders, org.exoplatform.services.cms.clouddrives.jcr.NodeFinder finder, org.exoplatform.services.cms.clouddrives.utils.ExtendedMimeTypeResolver mimeTypes, String exoURL)
      Instantiates a new JCR local CMIS drive.
      protected JCRLocalCMISDrive​(CMISUser user, javax.jcr.Node driveNode, org.exoplatform.services.jcr.ext.app.SessionProviderService sessionProviders, org.exoplatform.services.cms.clouddrives.jcr.NodeFinder finder, org.exoplatform.services.cms.clouddrives.utils.ExtendedMimeTypeResolver mimeTypes, String exoURL)
      Instantiates a new JCR local CMIS drive.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected org.exoplatform.services.cms.clouddrives.CloudFileAPI createFileAPI()
      protected void ensureSame​(org.exoplatform.services.cms.clouddrives.CloudUser user, javax.jcr.Node driveNode)
      protected List<javax.jcr.Node> findDocumentNode​(String id, org.apache.chemistry.opencmis.client.api.CmisObject file, Map<String,​List<javax.jcr.Node>> nodes)
      Find a node(s) representing a CMIS object with given ID.
      protected String findMimetype​(String fileName, String fileType)
      Determine a MIME type of given file name if given file type is null or a default value as defined by ExtendedMimeTypeResolver.getDefaultMimeType().
      protected String findMimetype​(String fileName, String fileType, String alternativeType)
      Determine a MIME type for given file name if given file type is null or a default value as defined by ExtendedMimeTypeResolver.getDefaultMimeType().
      protected String findMimetype​(org.apache.chemistry.opencmis.client.api.Document file, String localType)
      Find MIME type of given CMIS document.
      protected String getChangeToken​(javax.jcr.Node localNode)
      Read CMIS change token of a file.
      Override this method to apply vendor specific logic (id type etc).
      protected org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.ConnectCommand getConnectCommand()
      org.exoplatform.services.cms.clouddrives.viewer.ContentReader getFileContent​(String fileId)
      protected org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.SyncCommand getSyncCommand()
      CMISUser getUser()
      protected void initCMISItem​(javax.jcr.Node node, org.apache.chemistry.opencmis.client.api.CmisObject item)
      Initialize CMIS specifics of files and folders.
      protected void initFile​(javax.jcr.Node localNode, String title, String id, String type, String link, String previewLink, String thumbnailLink, String author, String lastUser, Calendar created, Calendar modified, long size)
      protected static CMISUser loadUser​(CMISConnector.API apiBuilder, javax.jcr.Node driveNode)
      Load user from the drive Node.
      protected String previewLink​(String type, javax.jcr.Node fileNode)
      protected Long readChangeId()
      protected void readNodes​(javax.jcr.Node parent, Map<String,​List<javax.jcr.Node>> nodes, boolean deep)
      protected void refreshAccess()
      protected void saveAccess​(javax.jcr.Node driveNode, String password, String serviceURL, String repositoryId)
      Save user credentials in local drive.
      protected void saveChangeId​(Long id)
      protected void setChangeToken​(javax.jcr.Node localNode, String changeToken)
      Initialize CMIS Change Token of a file.
      Override this method to apply vendor specific logic (id type etc).
      protected void updateAccess​(org.exoplatform.services.cms.clouddrives.CloudUser newUser)
      protected org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudFile updateItem​(CMISAPI api, org.apache.chemistry.opencmis.client.api.CmisObject item, javax.jcr.Node parent, javax.jcr.Node node)
      Update or create a local node of Cloud File.
      • Methods inherited from class org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive

        addJCRListener, addUpdating, await, checkNotTrashed, cleanName, cleanRemoved, cleanup, cleanUpdated, commitChanges, configure, connect, copyFile, create, currentUserName, disconnect, editLink, fileNode, findNode, findNodes, fixNameConflict, getChangeId, getConnectDate, getCurentCommand, getFile, getFilePreview, getId, getInitDate, getLink, getLocalUser, getOrCleanFileNode, getPath, getState, getTitle, getWorkspace, hasChange, hasFile, hasRemoved, hasUpdated, ignore, initCommon, initCopy, initDrive, initFolder, initRemove, initUpdating, isConnected, isDrive, isDrive, isIgnored, isInDrive, isInTrash, isLocal, isNew, isNewOrUpdating, isPrivilegedUser, isSameDrive, isSharingSupported, isUpdating, link, listFiles, listFiles, loadHistory, localChange, migrateName, moveFile, nextChangeId, nodeName, openFile, openFolder, parentPath, readFile, readNode, removeJCRListener, removeLinks, removeLinks, removeNode, removeUpdating, rollback, rollbackAllChanges, rootNode, rootNode, saveChanges, savedChanges, session, setChangeId, shareFile, size, synchronize, systemSession, thumbnailLink, title, unignore, unshareFile
      • Methods inherited from class org.exoplatform.services.cms.clouddrives.CloudDrive

        addListener, initCreated, removeListener, toString
    • Field Detail

      • PREVIOUS_LOCAL_NAME

        protected static final String PREVIOUS_LOCAL_NAME
        The Constant PREVIOUS_LOCAL_NAME.
        See Also:
        Constant Field Values
      • PREVIOUS_LOCAL_PARENT

        protected static final String PREVIOUS_LOCAL_PARENT
        The Constant PREVIOUS_LOCAL_PARENT.
        See Also:
        Constant Field Values
      • changeIdSequencer

        protected final AtomicLong changeIdSequencer
        The change id sequencer.
      • exoURL

        protected final String exoURL
        Platform server host URL, used for preview URL generation.
    • Constructor Detail

      • JCRLocalCMISDrive

        protected JCRLocalCMISDrive​(CMISUser user,
                                    javax.jcr.Node driveNode,
                                    org.exoplatform.services.jcr.ext.app.SessionProviderService sessionProviders,
                                    org.exoplatform.services.cms.clouddrives.jcr.NodeFinder finder,
                                    org.exoplatform.services.cms.clouddrives.utils.ExtendedMimeTypeResolver mimeTypes,
                                    String exoURL)
                             throws org.exoplatform.services.cms.clouddrives.CloudDriveException,
                                    javax.jcr.RepositoryException
        Instantiates a new JCR local CMIS drive.
        Parameters:
        user - the user
        driveNode - the drive node
        sessionProviders - the session providers
        finder - the finder
        mimeTypes - the mime types
        exoURL - the exo URL
        Throws:
        org.exoplatform.services.cms.clouddrives.CloudDriveException - the cloud drive exception
        javax.jcr.RepositoryException - the repository exception
      • JCRLocalCMISDrive

        protected JCRLocalCMISDrive​(CMISConnector.API apiBuilder,
                                    javax.jcr.Node driveNode,
                                    org.exoplatform.services.jcr.ext.app.SessionProviderService sessionProviders,
                                    org.exoplatform.services.cms.clouddrives.jcr.NodeFinder finder,
                                    org.exoplatform.services.cms.clouddrives.utils.ExtendedMimeTypeResolver mimeTypes,
                                    String exoURL)
                             throws javax.jcr.RepositoryException,
                                    org.exoplatform.services.cms.clouddrives.CloudDriveException
        Instantiates a new JCR local CMIS drive.
        Parameters:
        apiBuilder - the api builder
        driveNode - the drive node
        sessionProviders - the session providers
        finder - the finder
        mimeTypes - the mime types
        exoURL - the exo URL
        Throws:
        javax.jcr.RepositoryException - the repository exception
        org.exoplatform.services.cms.clouddrives.CloudDriveException - the cloud drive exception
    • Method Detail

      • loadUser

        protected static CMISUser loadUser​(CMISConnector.API apiBuilder,
                                           javax.jcr.Node driveNode)
                                    throws javax.jcr.RepositoryException,
                                           CMISException,
                                           org.exoplatform.services.cms.clouddrives.CloudDriveException
        Load user from the drive Node.
        Parameters:
        apiBuilder - CMISConnector.API API builder
        driveNode - Node root of the drive
        Returns:
        CMISUser
        Throws:
        javax.jcr.RepositoryException - the repository exception
        CMISException - the CMIS exception
        org.exoplatform.services.cms.clouddrives.CloudDriveException - the cloud drive exception
      • saveAccess

        protected void saveAccess​(javax.jcr.Node driveNode,
                                  String password,
                                  String serviceURL,
                                  String repositoryId)
                           throws org.exoplatform.services.cms.clouddrives.CloudDriveException
        Save user credentials in local drive. For use in new drive creation and for updateAccess(CloudUser).
        Parameters:
        driveNode - String
        password - String
        serviceURL - String optional if it's access update
        repositoryId - String optional if it's access update
        Throws:
        org.exoplatform.services.cms.clouddrives.CloudDriveException - the cloud drive exception
      • getConnectCommand

        protected org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.ConnectCommand getConnectCommand()
                                                                                                            throws org.exoplatform.services.cms.clouddrives.DriveRemovedException,
                                                                                                                   javax.jcr.RepositoryException
        Specified by:
        getConnectCommand in class org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive
        Throws:
        org.exoplatform.services.cms.clouddrives.DriveRemovedException
        javax.jcr.RepositoryException
      • getSyncCommand

        protected org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive.SyncCommand getSyncCommand()
                                                                                                      throws org.exoplatform.services.cms.clouddrives.DriveRemovedException,
                                                                                                             org.exoplatform.services.cms.clouddrives.SyncNotSupportedException,
                                                                                                             javax.jcr.RepositoryException
        Specified by:
        getSyncCommand in class org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive
        Throws:
        org.exoplatform.services.cms.clouddrives.DriveRemovedException
        org.exoplatform.services.cms.clouddrives.SyncNotSupportedException
        javax.jcr.RepositoryException
      • createFileAPI

        protected org.exoplatform.services.cms.clouddrives.CloudFileAPI createFileAPI()
                                                                               throws org.exoplatform.services.cms.clouddrives.DriveRemovedException,
                                                                                      org.exoplatform.services.cms.clouddrives.SyncNotSupportedException,
                                                                                      javax.jcr.RepositoryException
        Specified by:
        createFileAPI in class org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive
        Throws:
        org.exoplatform.services.cms.clouddrives.DriveRemovedException
        org.exoplatform.services.cms.clouddrives.SyncNotSupportedException
        javax.jcr.RepositoryException
      • readChangeId

        protected Long readChangeId()
                             throws javax.jcr.RepositoryException,
                                    org.exoplatform.services.cms.clouddrives.CloudDriveException
        Specified by:
        readChangeId in class org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive
        Throws:
        javax.jcr.RepositoryException
        org.exoplatform.services.cms.clouddrives.CloudDriveException
      • saveChangeId

        protected void saveChangeId​(Long id)
                             throws org.exoplatform.services.cms.clouddrives.CloudDriveException,
                                    javax.jcr.RepositoryException
        Specified by:
        saveChangeId in class org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive
        Throws:
        org.exoplatform.services.cms.clouddrives.CloudDriveException
        javax.jcr.RepositoryException
      • getUser

        public CMISUser getUser()
        Specified by:
        getUser in class org.exoplatform.services.cms.clouddrives.CloudDrive
      • refreshAccess

        protected void refreshAccess()
                              throws org.exoplatform.services.cms.clouddrives.CloudDriveException
        Specified by:
        refreshAccess in class org.exoplatform.services.cms.clouddrives.CloudDrive
        Throws:
        org.exoplatform.services.cms.clouddrives.CloudDriveException
      • updateAccess

        protected void updateAccess​(org.exoplatform.services.cms.clouddrives.CloudUser newUser)
                             throws org.exoplatform.services.cms.clouddrives.CloudDriveException,
                                    javax.jcr.RepositoryException
        Specified by:
        updateAccess in class org.exoplatform.services.cms.clouddrives.CloudDrive
        Throws:
        org.exoplatform.services.cms.clouddrives.CloudDriveException
        javax.jcr.RepositoryException
      • initCMISItem

        protected void initCMISItem​(javax.jcr.Node node,
                                    org.apache.chemistry.opencmis.client.api.CmisObject item)
                             throws javax.jcr.RepositoryException,
                                    CMISException
        Initialize CMIS specifics of files and folders.
        Parameters:
        node - Node
        item - CmisObject
        Throws:
        javax.jcr.RepositoryException - the repository exception
        CMISException - the CMIS exception
      • initFile

        protected void initFile​(javax.jcr.Node localNode,
                                String title,
                                String id,
                                String type,
                                String link,
                                String previewLink,
                                String thumbnailLink,
                                String author,
                                String lastUser,
                                Calendar created,
                                Calendar modified,
                                long size)
                         throws javax.jcr.RepositoryException
        Overrides:
        initFile in class org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive
        Throws:
        javax.jcr.RepositoryException
      • setChangeToken

        protected void setChangeToken​(javax.jcr.Node localNode,
                                      String changeToken)
                               throws javax.jcr.RepositoryException,
                                      CMISException
        Initialize CMIS Change Token of a file.
        Override this method to apply vendor specific logic (id type etc).
        Parameters:
        localNode - Node
        changeToken - String
        Throws:
        javax.jcr.RepositoryException - the repository exception
        CMISException - the CMIS exception
      • getChangeToken

        protected String getChangeToken​(javax.jcr.Node localNode)
                                 throws javax.jcr.RepositoryException,
                                        CMISException
        Read CMIS change token of a file.
        Override this method to apply vendor specific logic (id type etc).
        Parameters:
        localNode - Node
        Returns:
        String
        Throws:
        javax.jcr.RepositoryException - the repository exception
        CMISException - the CMIS exception
      • updateItem

        protected org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudFile updateItem​(CMISAPI api,
                                                                                            org.apache.chemistry.opencmis.client.api.CmisObject item,
                                                                                            javax.jcr.Node parent,
                                                                                            javax.jcr.Node node)
                                                                                     throws javax.jcr.RepositoryException,
                                                                                            org.exoplatform.services.cms.clouddrives.CloudDriveException
        Update or create a local node of Cloud File. If the node is null then it will be open on the given parent and created if not already exists.
        Parameters:
        api - CMISAPI
        item - CmisObject
        parent - Node
        node - Node, can be null
        Returns:
        JCRLocalCloudFile
        Throws:
        javax.jcr.RepositoryException - for storage errors
        org.exoplatform.services.cms.clouddrives.CloudDriveException - for drive or format errors
      • previewLink

        protected String previewLink​(String type,
                                     javax.jcr.Node fileNode)
                              throws javax.jcr.RepositoryException
        Overrides:
        previewLink in class org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive
        Throws:
        javax.jcr.RepositoryException
      • findMimetype

        protected String findMimetype​(org.apache.chemistry.opencmis.client.api.Document file,
                                      String localType)
        Find MIME type of given CMIS document. If the document type is null or a default value as defined by ExtendedMimeTypeResolver.getDefaultMimeType(), then most relevant type will be determined and if nothing found an existing local type will be returned. Otherwise a default type will be returned as defined by ExtendedMimeTypeResolver.getDefaultMimeType().
        Parameters:
        file - Document CMIS document
        localType - String locally stored MIME type for given file or null
        Returns:
        String relevant MIME type, not null
      • findMimetype

        protected String findMimetype​(String fileName,
                                      String fileType)
        Determine a MIME type of given file name if given file type is null or a default value as defined by ExtendedMimeTypeResolver.getDefaultMimeType(). If required, a MIME type will be guessed by ExtendedMimeTypeResolver.getMimeType(String) and returned if found. Otherwise a default type will be returned ( ExtendedMimeTypeResolver.getDefaultMimeType()).
        Parameters:
        fileName - String file name
        fileType - String MIME type already associated with the given file
        Returns:
        String relevant MIME type, not null
      • findMimetype

        protected String findMimetype​(String fileName,
                                      String fileType,
                                      String alternativeType)
        Determine a MIME type for given file name if given file type is null or a default value as defined by ExtendedMimeTypeResolver.getDefaultMimeType(). Otherwise this method returns the given file type.
        If required, a MIME type will be guessed by ExtendedMimeTypeResolver.getMimeType(String) and returned if found. If not, and given alternative type not null, the alternative type will be returned. Otherwise a default type will be returned ( ExtendedMimeTypeResolver.getDefaultMimeType()).
        Parameters:
        fileName - String file name
        fileType - String MIME type already associated with the given file name
        alternativeType - String alternative (locally stored) MIME type for given file name or null
        Returns:
        String relevant MIME type, not null
      • ensureSame

        protected void ensureSame​(org.exoplatform.services.cms.clouddrives.CloudUser user,
                                  javax.jcr.Node driveNode)
                           throws javax.jcr.RepositoryException,
                                  org.exoplatform.services.cms.clouddrives.CannotConnectDriveException
        Overrides:
        ensureSame in class org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive
        Throws:
        javax.jcr.RepositoryException
        org.exoplatform.services.cms.clouddrives.CannotConnectDriveException
      • readNodes

        protected void readNodes​(javax.jcr.Node parent,
                                 Map<String,​List<javax.jcr.Node>> nodes,
                                 boolean deep)
                          throws javax.jcr.RepositoryException
        Overrides:
        readNodes in class org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive
        Throws:
        javax.jcr.RepositoryException
      • findDocumentNode

        protected List<javax.jcr.Node> findDocumentNode​(String id,
                                                        org.apache.chemistry.opencmis.client.api.CmisObject file,
                                                        Map<String,​List<javax.jcr.Node>> nodes)
                                                 throws org.exoplatform.services.cms.clouddrives.CloudDriveAccessException,
                                                        CMISException,
                                                        org.exoplatform.services.cms.clouddrives.UnauthorizedException
        Find a node(s) representing a CMIS object with given ID.
        Parameters:
        id - String
        file - CmisObject remote file object
        nodes - list of existing locally files' nodes in the cloud drive
        Returns:
        list of nodes representing CMIS file with given ID
        Throws:
        org.exoplatform.services.cms.clouddrives.CloudDriveAccessException - the cloud drive access exception
        CMISException - the CMIS exception
        org.exoplatform.services.cms.clouddrives.UnauthorizedException - the unauthorized exception
        See Also:
        readNodes(Node, Map, boolean)
      • getFileContent

        public org.exoplatform.services.cms.clouddrives.viewer.ContentReader getFileContent​(String fileId)
                                                                                     throws org.exoplatform.services.cms.clouddrives.CloudDriveException,
                                                                                            org.exoplatform.services.cms.clouddrives.NotFoundException,
                                                                                            org.exoplatform.services.cms.clouddrives.CloudDriveAccessException,
                                                                                            org.exoplatform.services.cms.clouddrives.DriveRemovedException,
                                                                                            org.exoplatform.services.cms.clouddrives.UnauthorizedException,
                                                                                            javax.jcr.RepositoryException
        Specified by:
        getFileContent in interface org.exoplatform.services.cms.clouddrives.CloudDriveStorage
        Overrides:
        getFileContent in class org.exoplatform.services.cms.clouddrives.jcr.JCRLocalCloudDrive
        Throws:
        org.exoplatform.services.cms.clouddrives.CloudDriveException
        org.exoplatform.services.cms.clouddrives.NotFoundException
        org.exoplatform.services.cms.clouddrives.CloudDriveAccessException
        org.exoplatform.services.cms.clouddrives.DriveRemovedException
        org.exoplatform.services.cms.clouddrives.UnauthorizedException
        javax.jcr.RepositoryException