• 文件服务客户端


    组件编码 hzero-boot-file

    一、简介

    1.1 概述

    文件服务接口集成,使用feign调用实现,依赖客户端操作可避免复杂的Feign调用处理,开发者不用关注客户端与服务端数据交互细节,便于使用和升级维护

    1.2 特性

    1.3 组件坐标

    <dependency>
        <groupId>org.hzero.boot</groupId>
        <artifactId>hzero-boot-file</artifactId>
        <version>${hzero.boot.version}</version>
    </dependency>
    

    二、使用指南

    2.1 文件客户端使用方法

    在代码中自动注入文件客户端:org.hzero.boot.file.FileClient

    2.1.1 文件上传

        /**
         * 上传附件文件(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param attachmentUUID 附件UUID
         * @param storageCode    存储配置编码
         * @param byteFile       文件byte
         * @return URL
         */
        public String uploadAttachment(Long organizationId, String bucketName, String directory, String attachmentUUID, String fileName, String fileType, String storageCode, byte[] byteFile)
    
        /**
         * 上传附件文件(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param attachmentUUID 附件UUID
         * @param byteFile       文件byte
         * @return URL
         */
        public String uploadAttachment(Long organizationId, String bucketName, String directory, String attachmentUUID, String fileName, String fileType, byte[] byteFile)
    
        /**
         * 上传附件文件(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param attachmentUUID 附件UUID
         * @param byteFile       文件byte
         * @return URL
         */
        public String uploadAttachment(Long organizationId, String bucketName, String directory, String attachmentUUID, String fileName, byte[] byteFile)
        
        /**
         * 加密并上传附件文件(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param attachmentUUID 附件UUID
         * @param byteFile       文件byte
         * @return URL
         */
        public String uploadEncryptAttachment(Long organizationId, String bucketName, String directory, String attachmentUUID, String fileName, byte[] byteFile)
    
        /**
         * 指定密钥加密并上传附件文件(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param attachmentUUID 附件UUID
         * @param byteFile       文件byte
         * @param password       密钥
         * @return URL
         */
        public String uploadEncryptAttachment(Long organizationId, String bucketName, String directory, String attachmentUUID, String fileName, byte[] byteFile, String password)
    
        /**
         * 上传附件文件(Multipart)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param attachmentUUID 附件UUID
         * @param fileName       文件名
         * @param multipartFile  文件
         * @return URL
         */
        public String uploadAttachment(Long organizationId, String bucketName, String directory, String attachmentUUID, String fileName, MultipartFile multipartFile)
    
        /**
         * 上传附件文件(Multipart)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param attachmentUUID 附件UUID
         * @param fileName       文件名
         * @param docType        锁定文件类型标识 0:按照文件原有类型,1:指定锁定文件contentType为application/octet-stream
         * @param storageCode    存储配置编码
         * @param multipartFile  文件
         * @return URL
         */
        public String uploadAttachment(Long organizationId, String bucketName, String directory, String attachmentUUID, String fileName, int docType, String storageCode, MultipartFile multipartFile)
    
        /**
         * 上传附件文件(Multipart)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param attachmentUUID 附件UUID
         * @param fileName       文件名
         * @param docType        锁定文件类型标识 0:按照文件原有类型,1:指定锁定文件contentType为application/octet-stream
         * @param multipartFile  文件
         * @return URL
         */
        public String uploadAttachment(Long organizationId, String bucketName, String directory, String attachmentUUID, String fileName, int docType, MultipartFile multipartFile)
    
    
        /**
         * 加密并上传附件文件(Multipart), 不锁定文件类型
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param attachmentUUID 附件UUID
         * @param multipartFile  文件
         * @return URL
         */
        public String uploadEncryptAttachment(Long organizationId, String bucketName, String directory, String attachmentUUID, MultipartFile multipartFile)
    
        /**
         * 指定密钥加密并上传附件文件(Multipart)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param attachmentUUID 附件UUID
         * @param multipartFile  文件
         * @param password       密钥
         * @return URL
         */
        public String uploadEncryptAttachment(Long organizationId, String bucketName, String directory, String attachmentUUID, MultipartFile multipartFile, String password)
    
        /**
         * 上传附件文件(Multipart), 不指定文件名(使用文件原名)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param attachmentUUID 附件UUID
         * @param multipartFile  文件
         * @return URL
         */
        public String uploadAttachment(Long organizationId, String bucketName, String directory, String attachmentUUID, MultipartFile multipartFile)
    
        /**
         * 上传文件(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param storageCode    存储配置编码
         * @param byteFile       文件byte
         * @return URL地址
         */
        public String uploadFile(Long organizationId, String bucketName, String directory, String fileName, String fileType, String storageCode, byte[] byteFile)
    
        /**
         * 上传文件(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param byteFile       文件byte
         * @return URL地址
         */
        public String uploadFile(Long organizationId, String bucketName, String directory, String fileName, String fileType, byte[] byteFile)
    
        /**
         * 上传文件(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param byteFile       文件byte
         * @return URL地址
         */
        public String uploadFile(Long organizationId, String bucketName, String directory, String fileName, byte[] byteFile)
    
        /**
         * 加密上传文件(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param byteFile       文件byte
         * @return URL地址
         */
        public String uploadEncryptFile(Long organizationId, String bucketName, String directory, String fileName, byte[] byteFile)
        /**
         * 指定密钥加密上传文件(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param byteFile       文件byte
         * @return URL地址
         */
        public String uploadEncryptFile(Long organizationId, String bucketName, String directory, String fileName, byte[] byteFile, String password)
    
        /**
         * 上传文件(Multipart),指定特殊类型
         *
         * @param organizationId 租户Id
         * @param bucketName     桶名称
         * @param directory      文件夹
         * @param fileName       文件名称
         * @param docType        锁定文件类型标识 0:按照文件原有类型,1:指定锁定文件contentType为application/octet-stream
         * @param multipartFile  文件
         * @return 文件url
         */
        public String uploadFile(Long organizationId, String bucketName, String directory, String fileName, int docType, String storageCode, MultipartFile multipartFile)
    
        /**
         * 上传文件(Multipart),指定特殊类型
         *
         * @param organizationId 租户Id
         * @param bucketName     桶名称
         * @param directory      文件夹
         * @param fileName       文件名称
         * @param docType        锁定文件类型标识 0:按照文件原有类型,1:指定锁定文件contentType为application/octet-stream
         * @param multipartFile  文件
         * @return 文件url
         */
        public String uploadFile(Long organizationId, String bucketName, String directory, String fileName, int docType, MultipartFile multipartFile)
    
        /**
         * 上传文件(Multipart)
         *
         * @param organizationId 租户Id
         * @param bucketName     桶名称
         * @param directory      文件夹
         * @param fileName       文件名称
         * @param multipartFile  文件
         * @return 文件url
         */
        public String uploadFile(Long organizationId, String bucketName, String directory, String fileName, MultipartFile multipartFile)
    
        /**
         * 加密上传文件(Multipart)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @return URL地址
         */
        public String uploadEncryptFile(Long organizationId, String bucketName, String directory, MultipartFile multipartFile)
    
        /**
         * 指定密钥加密上传文件(Multipart)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param password       密钥
         * @return URL地址
         */
        public String uploadEncryptFile(Long organizationId, String bucketName, String directory, MultipartFile multipartFile, String password)
    
        /**
         * 上传文件(Multipart),不指定文件名
         *
         * @param organizationId 租户Id
         * @param bucketName     桶名称
         * @param directory      文件夹
         * @param multipartFile  文件
         * @return 文件url
         */
        public String uploadFile(Long organizationId, String bucketName, String directory, MultipartFile multipartFile)
    
        /**
         * 上传文件(Byte)生成MD5,返回文件key
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param storageCode    存储配置编码
         * @param byteFile       文件
         * @return FileSimpleDTO
         */
        public FileSimpleDTO uploadFileWithMD5(Long organizationId, String bucketName, String directory, String fileName, String fileType, String storageCode, byte[] byteFile)
        /**
         * 上传文件(Byte)生成MD5,返回文件key
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param byteFile       文件
         * @return FileSimpleDTO
         */
        public FileSimpleDTO uploadFileWithMD5(Long organizationId, String bucketName, String directory, String fileName, String fileType, byte[] byteFile)
    
        /**
         * 上传文件(Byte)生成MD5,返回文件key
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param byteFile       文件
         * @return FileSimpleDTO
         */
        public FileSimpleDTO uploadFileWithMD5(Long organizationId, String bucketName, String directory, String fileName, byte[] byteFile)
    
        /**
         * 加密上传文件(Byte)生成MD5,返回文件key
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param byteFile       文件
         * @return FileSimpleDTO
         */
        public FileSimpleDTO uploadEncryptFileWithMD5(Long organizationId, String bucketName, String directory, String fileName, byte[] byteFile)
    
        /**
         * 指定密钥加密上传文件(Byte)生成MD5,返回文件key
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param byteFile       文件
         * @return FileSimpleDTO
         */
        public FileSimpleDTO uploadEncryptFileWithMD5(Long organizationId, String bucketName, String directory, String fileName, byte[] byteFile, String password)
    
        /**
         * 上传文件(MultipartFile)生成MD5,返回文件key
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param docType        锁定文件类型标识 0:按照文件原有类型,1:指定锁定文件contentType为application/octet-stream
         * @param storageCode    存储配置编码
         * @param multipartFile  文件
         * @return FileSimpleDTO
         */
        public FileSimpleDTO uploadFileWithMD5(Long organizationId, String bucketName, String directory, String fileName, int docType, String storageCode, MultipartFile multipartFile)
    
        /**
         * 上传文件(MultipartFile)生成MD5,返回文件key
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param docType       锁定文件类型标识 0:按照文件原有类型,1:指定锁定文件contentType为application/octet-stream
         * @param multipartFile  文件
         * @return FileSimpleDTO
         */
        public FileSimpleDTO uploadFileWithMD5(Long organizationId, String bucketName, String directory, String fileName, int docType, MultipartFile multipartFile)
    
        /**
         * 上传文件(MultipartFile)生成MD5,返回文件key
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param fileName       文件名
         * @param multipartFile  文件
         * @return FileSimpleDTO
         */
        public FileSimpleDTO uploadFileWithMD5(Long organizationId, String bucketName, String directory, String fileName, MultipartFile multipartFile)
    
        /**
         * 上传文件(MultipartFile)生成MD5,返回文件key,不指定文件名
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param multipartFile  文件
         * @return FileSimpleDTO
         */
        public FileSimpleDTO uploadFileWithMD5(Long organizationId, String bucketName, String directory, MultipartFile multipartFile)
    
        /**
         * 加密上传文件(MultipartFile)生成MD5,返回文件key
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param multipartFile  文件
         * @return FileSimpleDTO
         */
        public FileSimpleDTO uploadEncryptFileWithMD5(Long organizationId, String bucketName, String directory, MultipartFile multipartFile)
    
        /**
         * 指定密钥加密上传文件(MultipartFile)生成MD5,返回文件key
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param directory      文件夹
         * @param multipartFile  文件
         * @param password       密钥
         * @return FileSimpleDTO
         */
        public FileSimpleDTO uploadEncryptFileWithMD5(Long organizationId, String bucketName, String directory, MultipartFile multipartFile, String password)
    
    

    2.1.2 文件下载

    /**
         * 通过文件KEY下载文件
         *
         * @param organizationId 租户ID
         * @param fileKey        文件KEY
         * @return Response
         */
        public Response downloadFileResponse(Long organizationId, String fileKey)
    
        /**
         * 通过文件KEY下载文件并解密
         *
         * @param organizationId 租户ID
         * @param fileKey        文件KEY
         * @param password       密钥(不指定传null)
         * @return Response
         */
        public Response downloadDecryptFileResponse(Long organizationId, String fileKey, String password)
    
        /**
         * 通过文件URL下载文件
         *
         * @param organizationId 租户ID
         * @param bucketName     桶
         * @param url            文件URL
         * @return Response
         */
        public Response downloadFileResponse(Long organizationId, String bucketName, String storageCode, String url)
    
        /**
         * 通过文件URL下载文件
         *
         * @param organizationId 租户ID
         * @param bucketName     桶
         * @param url            文件URL
         * @return Response
         */
        public Response downloadFileResponse(Long organizationId, String bucketName, String url)
    
        /**
         * 通过文件URL下载文件并解密
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param url            url
         * @param password       密钥(不指定传null)
         * @return Response
         */
        public Response downloadDecryptFileResponse(Long organizationId, String bucketName, String url, String storageCode, String password)
    
        /**
         * 通过文件URL下载文件并解密
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param url            url
         * @param password       密钥(不指定传null)
         * @return Response
         */
        public Response downloadDecryptFileResponse(Long organizationId, String bucketName, String url, String password)
    
        /**
         * 通过文件KEY下载文件
         *
         * @param organizationId 租户ID
         * @param fileKey        文件KEY
         * @return InputStream
         */
        public InputStream downloadFile(Long organizationId, String fileKey)
    
        /**
         * 通过文件KEY下载文件并解密
         *
         * @param organizationId 租户ID
         * @param fileKey        文件KEY
         * @param password       密钥(不指定传null)
         * @return Response
         */
        public InputStream downloadDecryptFile(Long organizationId, String fileKey, String password)
    
        /**
         * 通过文件URL下载文件
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param url            文件URL
         * @return InputStream
         */
        public InputStream downloadFile(Long organizationId, String bucketName, String url)
    
        /**
         * 通过文件URL下载文件并解密
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param url            url
         * @param password       密钥(不指定传null)
         * @return Response
         */
        public InputStream downloadDecryptFile(Long organizationId, String bucketName, String url, String password)
    

    2.1.3 文件删除

        /**
         * 删除AttachmentUUID下所有文件
         *
         * @param organizationId  租户ID
         * @param bucketName      桶名
         * @param storageCode     存储配置编码
         * @param attachmentUUIDs 附件UUID集合
         */
        public void deleteFile(Long organizationId, String bucketName, List<String> attachmentUUIDs, String storageCode)
    
        /**
         * 删除AttachmentUUID下所有文件
         *
         * @param organizationId  租户ID
         * @param bucketName      桶名
         * @param attachmentUUIDs 附件UUID集合
         */
        public void deleteFile(Long organizationId, String bucketName, List<String> attachmentUUIDs)
    
        /**
         * 删除AttachmentUUID下URL对应的文件
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param attachmentUUID 附件UUID
         * @param urls           文件URL集合
         */
        public void deleteFile(Long organizationId, String bucketName, String attachmentUUID, List<String> urls, String storageCode)
    
        /**
         * 删除AttachmentUUID下URL对应的文件
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param attachmentUUID 附件UUID
         * @param urls           文件URL集合
         */
        public void deleteFile(Long organizationId, String bucketName, String attachmentUUID, List<String> urls)
    
        /**
         * 删除AttachmentUUID下URL对应的文件,不能删空
         *
         * @param organizationId 租户Id
         * @param bucketName     桶名
         * @param attachmentUUID 附件UUID
         * @param urls           文件url
         */
        public void deleteFileNotNull(Long organizationId, String bucketName, String attachmentUUID, String storageCode, List<String> urls)
    
        /**
         * 删除AttachmentUUID下URL对应的文件,不能删空
         *
         * @param organizationId 租户Id
         * @param bucketName     桶名
         * @param attachmentUUID 附件UUID
         * @param urls           文件url
         */
        public void deleteFileNotNull(Long organizationId, String bucketName, String attachmentUUID, List<String> urls)
    
        /**
         * 根据文件KEY删除文件
         *
         * @param organizationId 租户ID
         * @param fileKey        文件KEY
         */
        public void deleteFileByKey(Long organizationId, String fileKey)
    
        /**
         * 根据文件URL删除文件
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param storageCode    存储配置编码
         * @param urls           文件URL集合
         */
        public void deleteFileByUrl(Long organizationId, String bucketName, String storageCode, List<String> urls)
    
        /**
         * 根据文件URL删除文件
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param urls           文件URL集合
         */
        public void deleteFileByUrl(Long organizationId, String bucketName, List<String> urls)
    

    2.1.4 文件更新

    /**
         * 根据文件KEY更新文件(Byte)
         *
         * @param organizationId 租户ID
         * @param fileKey        文件KEY
         * @param byteFile       文件
         * @return 文件url
         */
        public String updateFile(Long organizationId, String fileKey, byte[] byteFile)
    
        /**
         * 根据文件KEY更新文件并加密(Byte)
         *
         * @param organizationId 租户ID
         * @param fileKey        文件KEY
         * @param byteFile       文件
         * @return 文件url
         */
        public String updateEncryptFile(Long organizationId, String fileKey, byte[] byteFile)
    
        /**
         * 根据文件KEY更新文件并指定密钥加密(Byte)
         *
         * @param organizationId 租户ID
         * @param fileKey        文件KEY
         * @param byteFile       文件
         * @return 文件url
         */
        public String updateEncryptFile(Long organizationId, String fileKey, byte[] byteFile, String password)
    
        /**
         * 根据文件KEY更新文件(MultipartFile)
         *
         * @param organizationId 租户ID
         * @param fileKey        文件KEY
         * @param multipartFile  文件
         * @return 文件url
         */
        public String updateFile(Long organizationId, String fileKey, MultipartFile multipartFile)
    
        /**
         * 根据文件KEY更新文件并加密(MultipartFile)
         *
         * @param organizationId 租户ID
         * @param fileKey        文件KEY
         * @param multipartFile  文件
         * @return 文件url
         */
        public String updateEncryptFile(Long organizationId, String fileKey, MultipartFile multipartFile)
    
        /**
         * 根据文件KEY更新文件并加密(MultipartFile)
         *
         * @param organizationId 租户ID
         * @param fileKey        文件KEY
         * @param multipartFile  文件
         * @param password       密钥
         * @return 文件url
         */
        public String updateEncryptFile(Long organizationId, String fileKey, MultipartFile multipartFile, String password)
    
        /**
         * 根据文件URL更新文件(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param url            文件URL
         * @param storageCode    存储配置编码
         * @param byteFile       文件
         * @return 文件url
         */
        public String updateFile(Long organizationId, String bucketName, String url, String storageCode, byte[] byteFile)
    
        /**
         * 根据文件URL更新文件(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param url            文件URL
         * @param byteFile       文件
         * @return 文件url
         */
        public String updateFile(Long organizationId, String bucketName, String url, byte[] byteFile)
    
        /**
         * 根据文件URL更新文件并加密(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶
         * @param url            url
         * @param byteFile       文件
         * @return 文件url
         */
        public String updateEncryptFile(Long organizationId, String bucketName, String url, byte[] byteFile)
    
        /**
         * 根据文件URL更新文件并指定密钥加密(Byte)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶
         * @param url            url
         * @param byteFile       文件
         * @param password       密钥
         * @return 文件url
         */
        public String updateEncryptFile(Long organizationId, String bucketName, String url, byte[] byteFile, String password)
    
        /**
         * 根据文件URL更新文件(MultipartFile)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param url            文件URL
         * @param storageCode    存储配置编码
         * @param multipartFile  文件
         * @return 文件url
         */
        public String updateFile(Long organizationId, String bucketName, String url, String storageCode, MultipartFile multipartFile)
    
        /**
         * 根据文件URL更新文件(MultipartFile)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param url            文件URL
         * @param multipartFile  文件
         * @return 文件url
         */
        public String updateFile(Long organizationId, String bucketName, String url, MultipartFile multipartFile)
    
        /**
         * 根据文件URL更新文件并加密(Multipart)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶
         * @param url            url
         * @param multipartFile  文件
         * @return 文件url
         */
        public String updateEncryptFile(Long organizationId, String bucketName, String url, MultipartFile multipartFile)
    
        /**
         * 根据文件URL更新文件并指定密钥加密(Multipart)
         *
         * @param organizationId 租户ID
         * @param bucketName     桶
         * @param url            url
         * @param multipartFile  文件
         * @param password       密钥
         * @return 文件url
         */
        public String updateEncryptFile(Long organizationId, String bucketName, String url, MultipartFile multipartFile, String password)
    

    2.1.5 获取文件授权url

        /**
         * 指定存储获取文件授权URL
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param storageCode    存储配置编码
         * @param url            文件URL
         * @return 带授权签名的URL
         */
        public String getSignedUrl(Long organizationId, String bucketName, String storageCode, String url)
    
        /**
         * 获取文件授权URL
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param url            文件URL
         * @return 带授权签名的URL
         */
        public String getSignedUrl(Long organizationId, String bucketName, String url)
    
        /**
         * 根据文件key,获取授权URL
         *
         * @param organizationId 租户ID
         * @param fileKey        文件KEY
         * @return FileSimpleDTO
         */
        public FileSimpleDTO getSignedUrl(Long organizationId, String fileKey)
    

    2.1.6 获取附件UUID

        /**
         * 获取附件UUID
         *
         * @param organizationId 租户ID
         * @return UUID
         */
        public String getAttachmentUUID(Long organizationId)
    

    2.1.7 获取附件文件列表

        /**
         * 获取附件文件列表
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param attachmentUUID 附件UUID
         * @return List<FileDTO> 文件列表
         */
        public List<FileDTO> getAttachmentFiles(Long organizationId, String bucketName, String attachmentUUID)
    

    2.1.8 获取附件文件数量

        /**
         * 获取附件文件个数
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param attachmentUUID 附件UUID
         * @return Integer 条数
         */
        public Integer getAttachmentFileCount(Long organizationId, String bucketName, String attachmentUUID)
    

    2.1.9 校验附件Id下是否有文件

        /**
         * 校验多个附件ID下是否有文件
         *
         * @param organizationId 租户Id
         * @param bucketName     桶名
         * @param uuidList       文件UUID
         * @return Map
         */
        public Map<String, Boolean> checkUUid(Long organizationId, String bucketName, List<String> uuidList)
    

    2.1.10 获取文件信息列表

        /**
         * 根据URL集合批量获取文件信息
         *
         * @param organizationId 租户ID
         * @param bucketName     桶名
         * @param urls           文件URL集合
         * @return List<FileDTO> 文件集合
         */
        public List<FileDTO> getFiles(Long organizationId, String bucketName, List<String> urls)
    

    2.1.11 复制文件到新的附件ID

        /**
         * 复制文件
         *
         * @param organizationId   租户ID
         * @param fileParamsDTO    文件参数
         * @param listUuid         UUID集合
         * @param sourceBucketName 来源桶名
         * @return Map
         */
        public Map<String, String> copyFile(Long organizationId, FileParamsDTO fileParamsDTO, List<String> listUuid, String sourceBucketName)
    

    2.1.12 获取文件名称

        /**
         * 获取文件名
         *
         * @param string 文件url或者文件key
         * @return 文件名
         */
        public String getFileName(String string)
    

    2.2 onlyOffice客户端

    onlyOffice服务搭建参照文件服务开发指导

    配置参数:

    hzero.file.only-office.token   # document Sever token
    hzero.file.only-office.docServerUrl   # document Sever 路径
    hzero.file.only-office.callBackUrl   # 文件编辑完成的回调地址
    hzero.file.only-office.converterUrl   # 文件格式转换地址
    

    代码中自动注入onlyOffice客户端org.hzero.boot.file.OnlyOfficeClient, 只有hzero.file.only-office.token配置指定后,onlyOffice相关的bean才会注入

        /**
         * 根据url获取在线编辑文件的HTML信息
         *
         * @param tenantId    租户
         * @param storageCode 存储编码
         * @param url         文件url
         * @param permission  编辑权限
         * @return html
         */
        public String generateHtmlByUrl(Long tenantId, String bucketName, String storageCode, String url, PermissionDTO permission)
    
    
        /**
         * 根据fileKey获取在线编辑文件的HTML信息
         *
         * @param tenantId   租户
         * @param fileKey    文件key
         * @param permission 编辑权限
         * @return html
         */
        public String generateHtmlByKey(Long tenantId, String fileKey, PermissionDTO permission)
        
        /**
         * 根据key转换文件  https://api.onlyoffice.com/editors/conversionapi
         *
         * @param outType  输出的文件类型
         * @param tenantId 租户
         * @param fileKey  文件key
         * @param suffix   原文件格式
         * @return 转换后的文件
         */
        public byte[] converterByKey(String outType, Long tenantId, String fileKey, String suffix)
        
        /**
         * 根据url转换文件
         *
         * @param outType     输出的文件类型
         * @param tenantId    租户
         * @param bucketName  桶
         * @param storageCode 存储编码
         * @param url         文件url
         * @param suffix      原文件格式
         * @return 转换后的文件
         */
        public byte[] converterByUrl(String outType, Long tenantId, String bucketName, String storageCode, String url, String suffix)
    

    三、版本更新日志

    0.8.0.RELEASE [2019-02-28]

    0.10.0.RELEASE [2019-06-23]

    0.11.0.RELEASE [2019-07-24]