Class FileClientHelper


  • public class FileClientHelper
    extends EntityClientHelper
    Connector to the file resources accessible. Here is the list of parameters that are supported. They should be set in the Client's context before it is started:
    Parameter name Value type Default value Description
    temporaryExtension String tmp The name of the extension to use to store the temporary content while uploading content via the PUT method.
    resumeUpload boolean false Indicates if a failed upload can be resumed. This will prevent the deletion of the temporary file created.
    • Constructor Detail

      • FileClientHelper

        public FileClientHelper​(Client client)
        Constructor.
        Parameters:
        client - The client to help.
    • Method Detail

      • checkExtensionsConsistency

        protected boolean checkExtensionsConsistency​(java.io.File file)
        Check that all extensions of the file correspond to a known metadata.
        Parameters:
        file - The file whose extensions are checked.
        Returns:
        True if all extensions of the file are known by the metadata service.
      • checkMetadataConsistency

        private boolean checkMetadataConsistency​(java.lang.String fileName,
                                                 Representation representation)
        Checks that the URI and the representation are compatible. The whole set of metadata of the representation must be included in the set of those of the URI
        Parameters:
        fileName - The name of the resource
        representation - The provided representation.
        Returns:
        True if the metadata of the representation are compatible with the metadata extracted from the filename
      • getEntity

        public Entity getEntity​(java.lang.String decodedPath)
        Description copied from class: EntityClientHelper
        Returns a local entity for the given path.
        Specified by:
        getEntity in class EntityClientHelper
        Parameters:
        decodedPath - The path of the entity.
        Returns:
        A local entity for the given path.
      • getFileWithLocalizedPath

        private static java.io.File getFileWithLocalizedPath​(java.lang.String path)
        Returns a new File instance for the given path name.
        It ensures to translate the "/" to the local supported file separator (mainly useful for Windows OS).
        Parameters:
        path - The Path of the file
        Returns:
        a new File instance for the given path name.
      • getTemporaryExtension

        public java.lang.String getTemporaryExtension()
        Returns the name of the extension to use to store the temporary content while uploading content via the PUT method. Defaults to "tmp".
        Returns:
        The name of the extension to use to store the temporary content.
      • handleLocal

        protected void handleLocal​(Request request,
                                   Response response,
                                   java.lang.String decodedPath)
        Description copied from class: LocalClientHelper
        Handles a local call.
        Overrides:
        handleLocal in class EntityClientHelper
        Parameters:
        request - The request to handle.
        response - The response to update.
        decodedPath - The decoded local path.
      • handleFile

        protected void handleFile​(Request request,
                                  Response response,
                                  java.lang.String decodedPath)
      • isFileInDirectory

        private static boolean isFileInDirectory​(Directory directory,
                                                 java.io.File file)
        Indicates whether the given file is located inside the root directory.
        Parameters:
        directory - The root directory
        file - The file.
        Returns:
        True if the path is located under the root directory, false otherwise.
      • handleFileDelete

        protected void handleFileDelete​(Response response,
                                        java.io.File file)
        Handles a DELETE call for the FILE protocol.
        Parameters:
        response - The response to update.
        file - The file or directory to delete.
      • handleFilePut

        protected void handleFilePut​(Request request,
                                     Response response,
                                     java.lang.String path,
                                     java.io.File file)
        Handles a PUT call for the FILE protocol.
        Parameters:
        request - The request to update.
        response - The response to update.
        path - The encoded path of the requested file or directory.
        file - The requested file or directory.
      • doHandleFilePut

        private Status doHandleFilePut​(Request request,
                                       java.lang.String path,
                                       java.io.File file)
      • updateFileWithPartialContent

        private Status updateFileWithPartialContent​(Request request,
                                                    java.io.File file,
                                                    Range range)
      • replaceFile

        private Status replaceFile​(Request request,
                                   java.io.File file)
      • replaceFileByTemporaryFile

        private Status replaceFileByTemporaryFile​(Request request,
                                                  java.io.File file,
                                                  java.io.File tmp)
      • createFileWithPartialContent

        private Status createFileWithPartialContent​(Request request,
                                                    java.io.File file,
                                                    Range range)
      • createFile

        private Status createFile​(Request request,
                                  java.io.File file)
      • cleanTemporaryFileIfUploadNotResumed

        private void cleanTemporaryFileIfUploadNotResumed​(java.io.File tmp)
      • isResumeUpload

        public boolean isResumeUpload()
        Indicates if a failed upload can be resumed. This will prevent the deletion of the temporary file created. Defaults to "false".
        Returns:
        True if a failed upload can be resumed, false otherwise.
      • updateFileExtension

        private void updateFileExtension​(java.lang.StringBuilder fileName,
                                         Metadata metadata)
        Complete the given file name with the extension corresponding to the given metadata.
        Parameters:
        fileName - The file name to complete.
        metadata - The metadata.