From 748cb763ef5f7f100849d95a0edf6b160e34c878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E8=B6=85?= <1162714483@qq.com> Date: Sat, 29 May 2021 22:03:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- file-common/pom.xml | 63 --- .../common/config/AliyunConfig.java | 11 - .../common/config/PropertiesConfig.java | 21 - .../common/config/QiwenFileConfig.java | 20 - .../common/constant/FileConstant.java | 10 - .../qiwenshare/common/domain/AliyunOSS.java | 14 - .../common/exception/NotLoginException.java | 18 - .../exception/NotSameFileExpection.java | 7 - .../common/exception/UploadException.java | 12 - .../exception/UploadGeneralException.java | 16 - .../factory/AliyunOSSOperationFactory.java | 39 -- .../factory/FastDFSOperationFactory.java | 38 -- .../common/factory/FileOperationFactory.java | 11 - .../factory/LocalStorageOperationFactory.java | 38 -- .../common/operation/FileOperation.java | 425 ------------------ .../common/operation/ImageOperation.java | 43 -- .../common/operation/delete/Deleter.java | 7 - .../operation/delete/domain/DeleteFile.java | 9 - .../delete/product/AliyunOSSDeleter.java | 31 -- .../delete/product/FastDFSDeleter.java | 17 - .../delete/product/LocalStorageDeleter.java | 19 - .../common/operation/download/Downloader.java | 11 - .../download/domain/DownloadFile.java | 9 - .../download/product/AliyunOSSDownloader.java | 72 --- .../download/product/FastDFSDownloader.java | 57 --- .../product/LocalStorageDownloader.java | 62 --- .../common/operation/upload/Uploader.java | 102 ----- .../operation/upload/domain/UploadFile.java | 27 -- .../upload/product/AliyunOSSUploader.java | 224 --------- .../upload/product/FastDFSUploader.java | 186 -------- .../upload/product/LocalStorageUploader.java | 125 ------ .../qiwenshare/common/result/RestResult.java | 73 --- .../common/result/ResultCodeEnum.java | 31 -- .../qiwenshare/common/util/CollectUtil.java | 61 --- .../com/qiwenshare/common/util/DateUtil.java | 127 ------ .../com/qiwenshare/common/util/FileUtil.java | 95 ---- .../com/qiwenshare/common/util/JjwtUtil.java | 92 ---- .../com/qiwenshare/common/util/MimeUtils.java | 202 --------- .../qiwenshare/common/util/PasswordUtil.java | 19 - .../com/qiwenshare/common/util/PathUtil.java | 80 ---- .../common/util/PropertiesUtil.java | 18 - .../com/qiwenshare/common/util/RedisUtil.java | 98 ---- .../util/concurrent/locks/RedisLock.java | 240 ---------- file-common/src/main/resources/rebel.xml | 16 - file-web/.gitignore | 29 -- file-web/pom.xml | 171 ------- install.bat | 2 +- pom.xml | 183 ++++++-- .../com/qiwenshare/file/FileApplication.java | 6 - .../qiwenshare/file/advice/CMSException.java | 0 .../advice/GlobalExceptionHandlerAdvice.java | 7 +- .../java/com/qiwenshare/file/anno/MyLog.java | 0 .../file/anno/ResponseResultBody.java | 0 .../com/qiwenshare/file/aop/WebLogAcpect.java | 0 .../file/api/IElasticSearchService.java | 0 .../com/qiwenshare/file/api/IFileService.java | 0 .../file/api/IFiletransferService.java | 0 .../file/api/IOperationLogService.java | 0 .../file/api/IRecoveryFileService.java | 0 .../file/api/IShareFileService.java | 0 .../qiwenshare/file/api/IShareService.java | 0 .../qiwenshare/file/api/IUserFileService.java | 0 .../com/qiwenshare/file/api/IUserService.java | 0 .../file/component/FileDealComp.java | 30 +- .../file/component/UserDealComp.java | 0 .../qiwenshare/file}/config/FdfsConfig.java | 2 +- .../qiwenshare/file}/config/RedisConfig.java | 6 +- .../qiwenshare/file/config/WebMvcConfig.java | 0 .../file/config/cors/MyCorsRegistration.java | 0 .../qiwenshare/file/config/es/FileSearch.java | 0 .../file/config/openapi/OpenAPIConfig.java | 0 .../file/controller/FileController.java | 82 ++-- .../controller/FiletransferController.java | 24 +- .../controller/RecoveryFileController.java | 1 - .../file/controller/ShareController.java | 0 .../file/controller/TaskController.java | 0 .../file/controller/UserController.java | 9 - .../com/qiwenshare/file/domain/FileBean.java | 6 +- .../file/domain/OperationLogBean.java | 0 .../qiwenshare/file/domain/Permission.java | 0 .../qiwenshare/file/domain/RecoveryFile.java | 0 .../java/com/qiwenshare/file/domain/Role.java | 0 .../com/qiwenshare/file/domain/Share.java | 0 .../com/qiwenshare/file/domain/ShareFile.java | 0 .../qiwenshare/file/domain/StorageBean.java | 0 .../com/qiwenshare/file/domain/TreeNode.java | 0 .../com/qiwenshare/file/domain/UserBean.java | 0 .../com/qiwenshare/file/domain/UserFile.java | 0 .../file/dto/BatchDeleteRecoveryFileDTO.java | 0 .../qiwenshare/file/dto/BatchMoveFileDTO.java | 0 .../file/dto/DeleteRecoveryFileDTO.java | 0 .../qiwenshare/file/dto/DownloadFileDTO.java | 1 + .../com/qiwenshare/file/dto/FileListDTO.java | 0 .../com/qiwenshare/file/dto/MoveFileDTO.java | 0 .../file/dto/RecoveryFileListDTO.java | 0 .../qiwenshare/file/dto/UploadFileDTO.java | 0 .../file/dto/file/BatchDeleteFileDTO.java | 0 .../file/dto/file/CreateFileDTO.java | 0 .../file/dto/file/DeleteFileDTO.java | 0 .../qiwenshare/file/dto/file/PreviewDTO.java | 0 .../file/dto/file/RenameFileDTO.java | 0 .../file/dto/file/SearchFileDTO.java | 0 .../file/dto/file/UnzipFileDTO.java | 0 .../BatchDeleteRecoveryFileDTO.java | 0 .../file/dto/recoveryfile/RestoreFileDTO.java | 0 .../file/dto/sharefile/CheckEndTimeDTO.java | 0 .../dto/sharefile/CheckExtractionCodeDTO.java | 0 .../file/dto/sharefile/SaveShareFileDTO.java | 0 .../file/dto/sharefile/ShareFileDTO.java | 0 .../file/dto/sharefile/ShareFileListDTO.java | 0 .../file/dto/sharefile/ShareListDTO.java | 0 .../file/dto/sharefile/ShareTypeDTO.java | 0 .../qiwenshare/file/dto/user/RegisterDTO.java | 0 .../AuthenticationInterceptor.java | 0 .../qiwenshare/file/mapper/FileMapper.java | 0 .../file/mapper/OperationLogMapper.java | 0 .../file/mapper/RecoveryFileMapper.java | 0 .../file/mapper/ShareFileMapper.java | 0 .../qiwenshare/file/mapper/ShareMapper.java | 0 .../qiwenshare/file/mapper/StorageMapper.java | 0 .../file/mapper/UserFileMapper.java | 0 .../qiwenshare/file/mapper/UserMapper.java | 0 .../qiwenshare/file/service/FileService.java | 0 .../file/service/FiletransferService.java | 109 ++--- .../file/service/OperationLogService.java | 0 .../file/service/RecoveryFileService.java | 4 - .../file/service/ShareFileService.java | 0 .../qiwenshare/file/service/ShareService.java | 0 .../file/service/UserFileService.java | 29 +- .../qiwenshare/file/service/UserService.java | 0 .../file/util/OperationLogUtil.java | 0 .../qiwenshare/file/vo/file/FileListVo.java | 0 .../file/vo/file/RecoveryFileListVo.java | 0 .../qiwenshare/file/vo/file/UploadFileVo.java | 0 .../file/vo/share/ShareFileListVO.java | 0 .../qiwenshare/file/vo/share/ShareFileVO.java | 0 .../qiwenshare/file/vo/share/ShareListVO.java | 0 .../qiwenshare/file/vo/share/ShareTypeVO.java | 0 .../qiwenshare/file/vo/user/UserLoginVo.java | 0 .../src => src}/main/resources/banner.txt | 0 .../main/resources/build}/assembly.xml | 0 .../main/resources/build}/settings.xml | 12 +- .../config/application-dev.properties | 0 .../config/application-prod.properties | 0 .../resources/config/application.properties | 26 +- .../main/resources/database/data.sql | 0 .../resources/mybatis/mapper/FileMapper.xml | 0 .../mybatis/mapper/OperationLogMapper.xml | 0 .../mybatis/mapper/RecoveryFileMapper.xml | 0 .../mybatis/mapper/ShareFileMapper.xml | 0 .../resources/mybatis/mapper/ShareMapper.xml | 0 .../mybatis/mapper/StorageMapper.xml | 0 .../mybatis/mapper/UserFileMapper.xml | 7 +- .../resources/mybatis/mapper/UserMapper.xml | 0 .../main/resources/mybatis/mybatis-config.xml | 0 {file-web/src => src}/main/script/restart.sh | 0 {file-web/src => src}/main/script/start.sh | 0 {file-web/src => src}/main/script/stop.sh | 0 .../src => src}/main/script/winstart.bat | 0 .../src => src}/main/script/winstartw.bat | 0 .../qiwenshare/file/ScpApplicationTests.java | 0 161 files changed, 293 insertions(+), 3349 deletions(-) delete mode 100644 file-common/pom.xml delete mode 100644 file-common/src/main/java/com/qiwenshare/common/config/AliyunConfig.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/config/PropertiesConfig.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/config/QiwenFileConfig.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/constant/FileConstant.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/domain/AliyunOSS.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/exception/NotLoginException.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/exception/NotSameFileExpection.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/exception/UploadException.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/exception/UploadGeneralException.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/factory/AliyunOSSOperationFactory.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/factory/FastDFSOperationFactory.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/factory/FileOperationFactory.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/factory/LocalStorageOperationFactory.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/FileOperation.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/ImageOperation.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/delete/Deleter.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/delete/domain/DeleteFile.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/delete/product/AliyunOSSDeleter.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/delete/product/FastDFSDeleter.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/delete/product/LocalStorageDeleter.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/download/Downloader.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/download/domain/DownloadFile.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/download/product/AliyunOSSDownloader.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/download/product/FastDFSDownloader.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/download/product/LocalStorageDownloader.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/upload/Uploader.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/upload/domain/UploadFile.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/upload/product/AliyunOSSUploader.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/upload/product/FastDFSUploader.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/operation/upload/product/LocalStorageUploader.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/result/RestResult.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/result/ResultCodeEnum.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/util/CollectUtil.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/util/DateUtil.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/util/FileUtil.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/util/JjwtUtil.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/util/MimeUtils.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/util/PasswordUtil.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/util/PathUtil.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/util/PropertiesUtil.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/util/RedisUtil.java delete mode 100644 file-common/src/main/java/com/qiwenshare/common/util/concurrent/locks/RedisLock.java delete mode 100644 file-common/src/main/resources/rebel.xml delete mode 100644 file-web/.gitignore delete mode 100644 file-web/pom.xml rename {file-web/src => src}/main/java/com/qiwenshare/file/FileApplication.java (85%) rename {file-web/src => src}/main/java/com/qiwenshare/file/advice/CMSException.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/advice/GlobalExceptionHandlerAdvice.java (94%) rename {file-web/src => src}/main/java/com/qiwenshare/file/anno/MyLog.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/anno/ResponseResultBody.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/aop/WebLogAcpect.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/api/IElasticSearchService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/api/IFileService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/api/IFiletransferService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/api/IOperationLogService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/api/IRecoveryFileService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/api/IShareFileService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/api/IShareService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/api/IUserFileService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/api/IUserService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/component/FileDealComp.java (88%) rename {file-web/src => src}/main/java/com/qiwenshare/file/component/UserDealComp.java (100%) rename {file-common/src/main/java/com/qiwenshare/common => src/main/java/com/qiwenshare/file}/config/FdfsConfig.java (91%) rename {file-common/src/main/java/com/qiwenshare/common => src/main/java/com/qiwenshare/file}/config/RedisConfig.java (95%) rename {file-web/src => src}/main/java/com/qiwenshare/file/config/WebMvcConfig.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/config/cors/MyCorsRegistration.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/config/es/FileSearch.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/config/openapi/OpenAPIConfig.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/controller/FileController.java (90%) rename {file-web/src => src}/main/java/com/qiwenshare/file/controller/FiletransferController.java (94%) rename {file-web/src => src}/main/java/com/qiwenshare/file/controller/RecoveryFileController.java (99%) rename {file-web/src => src}/main/java/com/qiwenshare/file/controller/ShareController.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/controller/TaskController.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/controller/UserController.java (91%) rename {file-web/src => src}/main/java/com/qiwenshare/file/domain/FileBean.java (91%) rename {file-web/src => src}/main/java/com/qiwenshare/file/domain/OperationLogBean.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/domain/Permission.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/domain/RecoveryFile.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/domain/Role.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/domain/Share.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/domain/ShareFile.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/domain/StorageBean.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/domain/TreeNode.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/domain/UserBean.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/domain/UserFile.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/BatchDeleteRecoveryFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/BatchMoveFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/DeleteRecoveryFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/DownloadFileDTO.java (89%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/FileListDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/MoveFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/RecoveryFileListDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/UploadFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/file/BatchDeleteFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/file/CreateFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/file/DeleteFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/file/PreviewDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/file/RenameFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/file/SearchFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/file/UnzipFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/recoveryfile/BatchDeleteRecoveryFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/recoveryfile/RestoreFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/sharefile/CheckEndTimeDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/sharefile/CheckExtractionCodeDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/sharefile/SaveShareFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/sharefile/ShareFileDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/sharefile/ShareFileListDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/sharefile/ShareListDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/sharefile/ShareTypeDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/dto/user/RegisterDTO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/interceptor/AuthenticationInterceptor.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/mapper/FileMapper.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/mapper/OperationLogMapper.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/mapper/RecoveryFileMapper.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/mapper/ShareFileMapper.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/mapper/ShareMapper.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/mapper/StorageMapper.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/mapper/UserFileMapper.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/mapper/UserMapper.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/service/FileService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/service/FiletransferService.java (73%) rename {file-web/src => src}/main/java/com/qiwenshare/file/service/OperationLogService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/service/RecoveryFileService.java (96%) rename {file-web/src => src}/main/java/com/qiwenshare/file/service/ShareFileService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/service/ShareService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/service/UserFileService.java (90%) rename {file-web/src => src}/main/java/com/qiwenshare/file/service/UserService.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/util/OperationLogUtil.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/vo/file/FileListVo.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/vo/file/RecoveryFileListVo.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/vo/file/UploadFileVo.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/vo/share/ShareFileListVO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/vo/share/ShareFileVO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/vo/share/ShareListVO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/vo/share/ShareTypeVO.java (100%) rename {file-web/src => src}/main/java/com/qiwenshare/file/vo/user/UserLoginVo.java (100%) rename {file-web/src => src}/main/resources/banner.txt (100%) rename {file-common/src/main/resources/conf => src/main/resources/build}/assembly.xml (100%) rename {file-common/src/main/resources/conf => src/main/resources/build}/settings.xml (98%) rename {file-web/src => src}/main/resources/config/application-dev.properties (100%) rename {file-web/src => src}/main/resources/config/application-prod.properties (100%) rename {file-web/src => src}/main/resources/config/application.properties (87%) rename {file-web/src => src}/main/resources/database/data.sql (100%) rename {file-web/src => src}/main/resources/mybatis/mapper/FileMapper.xml (100%) rename {file-web/src => src}/main/resources/mybatis/mapper/OperationLogMapper.xml (100%) rename {file-web/src => src}/main/resources/mybatis/mapper/RecoveryFileMapper.xml (100%) rename {file-web/src => src}/main/resources/mybatis/mapper/ShareFileMapper.xml (100%) rename {file-web/src => src}/main/resources/mybatis/mapper/ShareMapper.xml (100%) rename {file-web/src => src}/main/resources/mybatis/mapper/StorageMapper.xml (100%) rename {file-web/src => src}/main/resources/mybatis/mapper/UserFileMapper.xml (93%) rename {file-web/src => src}/main/resources/mybatis/mapper/UserMapper.xml (100%) rename {file-web/src => src}/main/resources/mybatis/mybatis-config.xml (100%) rename {file-web/src => src}/main/script/restart.sh (100%) rename {file-web/src => src}/main/script/start.sh (100%) rename {file-web/src => src}/main/script/stop.sh (100%) rename {file-web/src => src}/main/script/winstart.bat (100%) rename {file-web/src => src}/main/script/winstartw.bat (100%) rename {file-web/src => src}/test/java/com/qiwenshare/file/ScpApplicationTests.java (100%) diff --git a/file-common/pom.xml b/file-common/pom.xml deleted file mode 100644 index 9bb3eda..0000000 --- a/file-common/pom.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - com.qiwenshare - file - 1.0-SNAPSHOT - - 4.0.0 - com.qiwenshare - file-common - 1.0.0-SNAPSHOT - jar - - - - com.github.junrar - junrar - 7.4.0 - - - - - - - - - - - net.coobird - thumbnailator - 0.4.13 - - - - com.aliyun.oss - aliyun-sdk-oss - 3.10.2 - - - io.jsonwebtoken - jjwt - 0.9.1 - - - - com.github.tobato - fastdfs-client - 1.26.2 - - - - - org.springframework.boot - spring-boot-starter-data-redis - - - - - - - \ No newline at end of file diff --git a/file-common/src/main/java/com/qiwenshare/common/config/AliyunConfig.java b/file-common/src/main/java/com/qiwenshare/common/config/AliyunConfig.java deleted file mode 100644 index cbf36dd..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/config/AliyunConfig.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.qiwenshare.common.config; - -import com.qiwenshare.common.domain.AliyunOSS; -import lombok.Data; - -@Data -public class AliyunConfig { - private AliyunOSS oss = new AliyunOSS(); - - -} diff --git a/file-common/src/main/java/com/qiwenshare/common/config/PropertiesConfig.java b/file-common/src/main/java/com/qiwenshare/common/config/PropertiesConfig.java deleted file mode 100644 index 8f6359c..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/config/PropertiesConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.qiwenshare.common.config; - -import javax.annotation.PostConstruct; -import javax.annotation.Resource; - -import com.qiwenshare.common.util.PropertiesUtil; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.env.Environment; - -@Configuration -public class PropertiesConfig { - - @Resource - private Environment env; - - @PostConstruct - public void setProperties() { - PropertiesUtil.setEnvironment(env); - } - -} \ No newline at end of file diff --git a/file-common/src/main/java/com/qiwenshare/common/config/QiwenFileConfig.java b/file-common/src/main/java/com/qiwenshare/common/config/QiwenFileConfig.java deleted file mode 100644 index b721e37..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/config/QiwenFileConfig.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.qiwenshare.common.config; - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -@Data -@Component -@ConfigurationProperties(prefix = "qiwen-file") -public class QiwenFileConfig { - - private boolean shareMode; - - private String storageType; - private String cacheMode; - private String localStoragePath; - - private AliyunConfig aliyun = new AliyunConfig(); - -} diff --git a/file-common/src/main/java/com/qiwenshare/common/constant/FileConstant.java b/file-common/src/main/java/com/qiwenshare/common/constant/FileConstant.java deleted file mode 100644 index 73cdec0..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/constant/FileConstant.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.qiwenshare.common.constant; - -public class FileConstant { - /** - * 路径分隔符 - */ - public static final String pathSeparator = "/"; - public static final int deleteFileRandomSize = 999999; - -} diff --git a/file-common/src/main/java/com/qiwenshare/common/domain/AliyunOSS.java b/file-common/src/main/java/com/qiwenshare/common/domain/AliyunOSS.java deleted file mode 100644 index 4b01964..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/domain/AliyunOSS.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.qiwenshare.common.domain; - -import lombok.Data; - -@Data -public class AliyunOSS { - - private String endpoint; - private String accessKeyId; - private String accessKeySecret; - private String bucketName; - private String objectName; - private String domain; -} diff --git a/file-common/src/main/java/com/qiwenshare/common/exception/NotLoginException.java b/file-common/src/main/java/com/qiwenshare/common/exception/NotLoginException.java deleted file mode 100644 index 89a6d2c..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/exception/NotLoginException.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.qiwenshare.common.exception; - -public class NotLoginException extends RuntimeException{ - public NotLoginException() { - super("未登录"); - } - public NotLoginException(Throwable cause) { - super("未登录", cause); - } - - public NotLoginException(String message) { - super(message); - } - - public NotLoginException(String message, Throwable cause) { - super(message, cause); - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/exception/NotSameFileExpection.java b/file-common/src/main/java/com/qiwenshare/common/exception/NotSameFileExpection.java deleted file mode 100644 index 9ebd262..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/exception/NotSameFileExpection.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.qiwenshare.common.exception; - -public class NotSameFileExpection extends Exception { - public NotSameFileExpection() { - super("File MD5 Different"); - } -} \ No newline at end of file diff --git a/file-common/src/main/java/com/qiwenshare/common/exception/UploadException.java b/file-common/src/main/java/com/qiwenshare/common/exception/UploadException.java deleted file mode 100644 index c83a7e1..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/exception/UploadException.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.qiwenshare.common.exception; - -public abstract class UploadException extends RuntimeException{ - - protected UploadException(String message) { - super(message); - } - - protected UploadException(String message, Throwable cause) { - super(message, cause); - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/exception/UploadGeneralException.java b/file-common/src/main/java/com/qiwenshare/common/exception/UploadGeneralException.java deleted file mode 100644 index a974354..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/exception/UploadGeneralException.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.qiwenshare.common.exception; - -public class UploadGeneralException extends UploadException{ - - public UploadGeneralException(Throwable cause) { - super("上传出现了异常", cause); - } - - public UploadGeneralException(String message) { - super(message); - } - - public UploadGeneralException(String message, Throwable cause) { - super(message, cause); - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/factory/AliyunOSSOperationFactory.java b/file-common/src/main/java/com/qiwenshare/common/factory/AliyunOSSOperationFactory.java deleted file mode 100644 index 44b4bfb..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/factory/AliyunOSSOperationFactory.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.qiwenshare.common.factory; - - -import com.qiwenshare.common.operation.delete.Deleter; -import com.qiwenshare.common.operation.delete.product.AliyunOSSDeleter; - -import com.qiwenshare.common.operation.download.Downloader; -import com.qiwenshare.common.operation.download.product.AliyunOSSDownloader; -import com.qiwenshare.common.operation.upload.Uploader; -import com.qiwenshare.common.operation.upload.product.AliyunOSSUploader; - -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -@Component -public class AliyunOSSOperationFactory implements FileOperationFactory { - @Resource - AliyunOSSUploader aliyunOSSUploader; - @Resource - AliyunOSSDownloader aliyunOSSDownloader; - @Resource - AliyunOSSDeleter aliyunOSSDeleter; - @Override - public Uploader getUploader() { - return aliyunOSSUploader; - } - - @Override - public Downloader getDownloader() { - return aliyunOSSDownloader; - } - - @Override - public Deleter getDeleter() { - return aliyunOSSDeleter; - } - -} diff --git a/file-common/src/main/java/com/qiwenshare/common/factory/FastDFSOperationFactory.java b/file-common/src/main/java/com/qiwenshare/common/factory/FastDFSOperationFactory.java deleted file mode 100644 index 849fdf8..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/factory/FastDFSOperationFactory.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.qiwenshare.common.factory; - -import com.qiwenshare.common.operation.delete.Deleter; -import com.qiwenshare.common.operation.delete.product.FastDFSDeleter; -import com.qiwenshare.common.operation.download.Downloader; -import com.qiwenshare.common.operation.download.product.FastDFSDownloader; -import com.qiwenshare.common.operation.upload.Uploader; -import com.qiwenshare.common.operation.upload.product.FastDFSUploader; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -@Component -public class FastDFSOperationFactory implements FileOperationFactory { - - @Resource - FastDFSUploader fastDFSUploader; - @Resource - FastDFSDownloader fastDFSDownloader; - @Resource - FastDFSDeleter fastDFSDeleter; - @Override - public Uploader getUploader() { - return fastDFSUploader; - } - - @Override - public Downloader getDownloader() { - return fastDFSDownloader; - } - - @Override - public Deleter getDeleter() { - return fastDFSDeleter; - } - - -} diff --git a/file-common/src/main/java/com/qiwenshare/common/factory/FileOperationFactory.java b/file-common/src/main/java/com/qiwenshare/common/factory/FileOperationFactory.java deleted file mode 100644 index 15da8ed..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/factory/FileOperationFactory.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.qiwenshare.common.factory; - -import com.qiwenshare.common.operation.delete.Deleter; -import com.qiwenshare.common.operation.download.Downloader; -import com.qiwenshare.common.operation.upload.Uploader; - -public interface FileOperationFactory { - Uploader getUploader(); - Downloader getDownloader(); - Deleter getDeleter(); -} diff --git a/file-common/src/main/java/com/qiwenshare/common/factory/LocalStorageOperationFactory.java b/file-common/src/main/java/com/qiwenshare/common/factory/LocalStorageOperationFactory.java deleted file mode 100644 index d965ebf..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/factory/LocalStorageOperationFactory.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.qiwenshare.common.factory; - -import com.qiwenshare.common.operation.delete.Deleter; -import com.qiwenshare.common.operation.delete.product.LocalStorageDeleter; -import com.qiwenshare.common.operation.download.Downloader; -import com.qiwenshare.common.operation.download.product.LocalStorageDownloader; -import com.qiwenshare.common.operation.upload.product.LocalStorageUploader; -import com.qiwenshare.common.operation.upload.Uploader; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -@Component -public class LocalStorageOperationFactory implements FileOperationFactory{ - - @Resource - LocalStorageUploader localStorageUploader; - @Resource - LocalStorageDownloader localStorageDownloader; - @Resource - LocalStorageDeleter localStorageDeleter; - @Override - public Uploader getUploader() { - return localStorageUploader; - } - - @Override - public Downloader getDownloader() { - return localStorageDownloader; - } - - @Override - public Deleter getDeleter() { - return localStorageDeleter; - } - - -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/FileOperation.java b/file-common/src/main/java/com/qiwenshare/common/operation/FileOperation.java deleted file mode 100644 index 863b25d..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/FileOperation.java +++ /dev/null @@ -1,425 +0,0 @@ -package com.qiwenshare.common.operation; - -import com.github.junrar.Archive; -import com.github.junrar.rarfile.FileHeader; -import com.qiwenshare.common.util.FileUtil; -import com.qiwenshare.common.util.PathUtil; -import lombok.extern.slf4j.Slf4j; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.*; -import java.nio.charset.Charset; -import java.util.*; - -import java.util.concurrent.Executor; -import java.util.concurrent.Executors; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - -/** - * 文件操作 - */ -@Slf4j -public class FileOperation { - private static Logger logger = LoggerFactory.getLogger(FileOperation.class); - private static Executor executor = Executors.newFixedThreadPool(20); - /** - * 创建文件 - * - * @param fileUrl 文件路径 - * @return 新文件 - */ - public static File newFile(String fileUrl) { - File file = new File(fileUrl); - return file; - } - - /** - * 删除文件 - * - * @param file 文件 - * @return 是否删除成功 - */ - public static boolean deleteFile(File file) { - if (file == null) { - return false; - } - - if (!file.exists()) { - return false; - - } - - if (file.isFile()) { - return file.delete(); - } else { - for (File newfile : file.listFiles()) { - deleteFile(newfile); - } - } - return file.delete(); - } - - /** - * 删除文件 - * - * @param fileUrl 文件路径 - * @return 删除是否成功 - */ - public static boolean deleteFile(String fileUrl) { - File file = newFile(fileUrl); - return deleteFile(file); - } - - /** - * 得到文件大小 - * - * @param fileUrl 文件路径 - * @return 文件大小 - */ - public static long getFileSize(String fileUrl) { - File file = newFile(fileUrl); - if (file.exists()) { - return file.length(); - } - return 0; - } - - /** - * 得到文件大小 - * - * @param file 文件 - * @return 文件大小 - */ - public static long getFileSize(File file) { - if (file == null) { - return 0; - } - return file.length(); - } - - /** - * 创建目录 - * - * @param file 文件 - * @return 是否创建成功 - */ - public static boolean mkdir(File file) { - if (file == null) { - return false; - } - - if (file.exists()) { - return true; - } - - return file.mkdirs(); - } - - /** - * 创建目录 - * - * @param fileUrl 文件路径 - * @return 是否创建成功 - */ - public static boolean mkdir(String fileUrl) { - if (fileUrl == null) { - return false; - } - File file = newFile(fileUrl); - if (file.exists()) { - return true; - } - - return file.mkdirs(); - } - - /** - * 拷贝文件 - * - * @param fileInputStream 文件输入流 - * @param fileOutputStream 文件输出流 - * @throws IOException io异常 - */ - public static void copyFile(FileInputStream fileInputStream, FileOutputStream fileOutputStream) throws IOException { - try { - byte[] buf = new byte[4096]; //8k的缓冲区 - - int len = fileInputStream.read(buf); //数据在buf中,len代表向buf中放了多少个字节的数据,-1代表读不到 - while (len != -1) { - - fileOutputStream.write(buf, 0, len); //读多少个字节,写多少个字节 - - len = fileInputStream.read(buf); - } - - } finally { - if (fileInputStream != null) { - try { - fileInputStream.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - if (fileOutputStream != null) { - try { - fileOutputStream.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - - } - - - } - - /** - * 拷贝文件 - * - * @param src 源文件 - * @param dest 目的文件 - * @throws IOException io异常 - */ - public static void copyFile(File src, File dest) throws IOException { - FileInputStream in = new FileInputStream(src); - FileOutputStream out = new FileOutputStream(dest); - - copyFile(in, out); - - - } - - /** - * 拷贝文件 - * - * @param srcUrl 源路径 - * @param destUrl 目的路径 - * @throws IOException io异常 - */ - public static void copyFile(String srcUrl, String destUrl) throws IOException { - if (srcUrl == null || destUrl == null) { - return; - } - File srcFile = newFile(srcUrl); - File descFile = newFile(destUrl); - copyFile(srcFile, descFile); - } - - /** - * 文件解压缩 - * - * @param sourceFile 需要解压的文件 - * @param destDirPath 目的路径 - * @return 解压目录列表 - */ - public static List unzip(File sourceFile, String destDirPath) { - ZipFile zipFile = null; - Set set = new HashSet(); - // set.add("/"); - List fileEntryNameList = new ArrayList<>(); - try { - zipFile = new ZipFile(sourceFile, Charset.forName("GBK")); - Enumeration entries = zipFile.entries(); - while (entries.hasMoreElements()) { - ZipEntry entry = (ZipEntry) entries.nextElement(); - - String[] nameStrArr = entry.getName().split("/"); - - String nameStr = "/"; - for (int i = 0; i < nameStrArr.length; i++) { - if (!"".equals(nameStrArr[i])) { - nameStr = nameStr + "/" + nameStrArr[i]; - set.add(nameStr); - } - - } - - logger.info("解压" + entry.getName()); - String zipPath = "/" + entry.getName(); - - - fileEntryNameList.add(zipPath); - //如果是文件夹,就创建个文件夹 - if (entry.isDirectory()) { - String dirPath = destDirPath + File.separator + entry.getName(); - File dir = FileOperation.newFile(dirPath); - - dir.mkdir(); - } else { - //如果是文件,就先创建一个文件,然后用io流把内容拷过去 - File targetFile = new File(destDirPath + "/" + entry.getName()); - // 保证这个文件的父文件夹必须要存在 - if (!targetFile.getParentFile().exists()) { - targetFile.getParentFile().mkdirs(); - } - targetFile.createNewFile(); - // 将压缩文件内容写入到这个文件中 - InputStream is = null; - FileOutputStream fos = null; - try { - is = zipFile.getInputStream(entry); - fos = new FileOutputStream(targetFile); - int len; - byte[] buf = new byte[2048]; - while ((len = is.read(buf)) != -1) { - fos.write(buf, 0, len); - } - } catch (Exception e) { - // 关流顺序,先打开的后关闭 - if (fos != null) { - try { - fos.close(); - } catch (Exception e1) { - log.error("关闭流失败:" + e1); - } - - } - if (is != null) { - try { - is.close(); - } catch (Exception e2) { - log.error("关闭流失败:" + e2); - } - - } - - } - - } - } - } catch (Exception e) { - throw new RuntimeException("unzip error from ZipUtils", e); - } finally { - if (zipFile != null) { - try { - zipFile.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - for (String zipPath : fileEntryNameList) { - executor.execute(new Runnable() { - @Override - public void run() { - if (FileUtil.isImageFile(FileUtil.getFileExtendName(zipPath))) { - File file = new File(destDirPath + zipPath); - File minFile = new File(destDirPath + FileUtil.getFileNameNotExtend(zipPath) + "_min." + FileUtil.getFileExtendName(zipPath)); - try { - ImageOperation.thumbnailsImage(file, minFile, 300); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - }); - - } - List res = new ArrayList<>(set); - return res; - } - - /** - * 解压rar - * - * @param sourceFile 需要解压的文件 - * @param destDirPath 目的路径 - * @throws Exception - */ - public static List unrar(File sourceFile, String destDirPath) throws Exception { - File destDir = new File(destDirPath); - Set set = new HashSet(); - Archive archive = null; - FileOutputStream fos = null; - System.out.println("Starting 开始解压..."); - try { - archive = new Archive(sourceFile); - FileHeader fh = archive.nextFileHeader(); - int count = 0; - File destFileName = null; - while (fh != null) { - set.add("/" + fh.getFileName()); - System.out.println((++count) + ") " + fh.getFileName()); - String compressFileName = fh.getFileName().trim(); - destFileName = new File(destDir.getAbsolutePath() + "/" + compressFileName); - if (fh.isDirectory()) { - if (!destFileName.exists()) { - destFileName.mkdirs(); - } - fh = archive.nextFileHeader(); - continue; - } - if (!destFileName.getParentFile().exists()) { - destFileName.getParentFile().mkdirs(); - } - - - fos = new FileOutputStream(destFileName); - archive.extractFile(fh, fos); - fos.close(); - fos = null; - fh = archive.nextFileHeader(); - } - - archive.close(); - archive = null; - System.out.println("Finished 解压完成!"); - } catch (Exception e) { - throw e; - } finally { - if (fos != null) { - try { - fos.close(); - } catch (Exception e) { - log.error("关闭流失败:" + e.getMessage()); - } - } - if (archive != null) { - try { - archive.close(); - } catch (Exception e) { - log.error("关闭流失败:" + e.getMessage()); - } - } - } - - - for (String zipPath : set) { - executor.execute(new Runnable() { - @Override - public void run() { - if (FileUtil.isImageFile(FileUtil.getFileExtendName(zipPath))) { - File file = new File(destDirPath + zipPath); - File minFile = new File(destDirPath + FileUtil.getFileNameNotExtend(zipPath) + "_min." + FileUtil.getFileExtendName(zipPath)); - try { - ImageOperation.thumbnailsImage(file, minFile, 300); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - }); - - } - List res = new ArrayList<>(set); - return res; - } - - public static long deleteFileFromDisk(String fileurl) { - String fileUrl = PathUtil.getStaticPath() + fileurl; - String extendName = FileUtil.getFileExtendName(fileUrl); - String minFileUrl = fileUrl.replace("." + extendName, "_min." + extendName); - long filesize = getFileSize(fileUrl); - - FileOperation.deleteFile(fileUrl); - FileOperation.deleteFile(minFileUrl); - - return filesize; - } - - -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/ImageOperation.java b/file-common/src/main/java/com/qiwenshare/common/operation/ImageOperation.java deleted file mode 100644 index 4f6820c..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/ImageOperation.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.qiwenshare.common.operation; - -import net.coobird.thumbnailator.Thumbnails; - -import java.io.File; -import java.io.IOException; - -public class ImageOperation { - /** - * 左旋 - * @param inFile 源文件 - * @param outFile 目的文件 - * @param angle 角度 - * @throws IOException io异常 - */ - public static void leftTotation(File inFile, File outFile, int angle) throws IOException { - Thumbnails.of(inFile).scale(1).outputQuality(1).rotate(-angle).toFile(outFile); - } - - /** - * 右旋 - * @param inFile 源文件 - * @param outFile 目的文件 - * @param angle 角度 - * @throws IOException io异常 - */ - public static void rightTotation(File inFile, File outFile, int angle) throws IOException { - Thumbnails.of(inFile).scale(1).outputQuality(1).rotate(angle).toFile(outFile); - } - - /** - * 压缩 - * @param inFile 源文件 - * @param outFile 目的文件 - * @throws IOException io异常 - */ - public static void thumbnailsImage(File inFile, File outFile, int imageSize) throws IOException { - - Thumbnails.of(inFile).size(imageSize, imageSize) - .toFile(outFile); - - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/delete/Deleter.java b/file-common/src/main/java/com/qiwenshare/common/operation/delete/Deleter.java deleted file mode 100644 index cc233b0..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/delete/Deleter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.qiwenshare.common.operation.delete; - -import com.qiwenshare.common.operation.delete.domain.DeleteFile; - -public abstract class Deleter { - public abstract void delete(DeleteFile deleteFile); -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/delete/domain/DeleteFile.java b/file-common/src/main/java/com/qiwenshare/common/operation/delete/domain/DeleteFile.java deleted file mode 100644 index 5f1f05a..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/delete/domain/DeleteFile.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.qiwenshare.common.operation.delete.domain; - -import lombok.Data; - -@Data -public class DeleteFile { - private String fileUrl; - private String timeStampName; -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/delete/product/AliyunOSSDeleter.java b/file-common/src/main/java/com/qiwenshare/common/operation/delete/product/AliyunOSSDeleter.java deleted file mode 100644 index 5c039ce..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/delete/product/AliyunOSSDeleter.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.qiwenshare.common.operation.delete.product; - -import com.aliyun.oss.OSS; -import com.aliyun.oss.OSSClientBuilder; -import com.qiwenshare.common.config.QiwenFileConfig; -import com.qiwenshare.common.operation.delete.Deleter; -import com.qiwenshare.common.operation.delete.domain.DeleteFile; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; - -@Component -public class AliyunOSSDeleter extends Deleter { - @Resource - QiwenFileConfig qiwenFileConfig; - @Override - public void delete(DeleteFile deleteFile) { - String endpoint = qiwenFileConfig.getAliyun().getOss().getEndpoint(); - String accessKeyId = qiwenFileConfig.getAliyun().getOss().getAccessKeyId(); - String accessKeySecret = qiwenFileConfig.getAliyun().getOss().getAccessKeySecret(); - String bucketName = qiwenFileConfig.getAliyun().getOss().getBucketName(); - OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); - - ossClient.deleteObject(bucketName, deleteFile.getFileUrl().substring(1)); - - - - // 关闭OSSClient。 - ossClient.shutdown(); - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/delete/product/FastDFSDeleter.java b/file-common/src/main/java/com/qiwenshare/common/operation/delete/product/FastDFSDeleter.java deleted file mode 100644 index f3b80b9..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/delete/product/FastDFSDeleter.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.qiwenshare.common.operation.delete.product; - -import com.github.tobato.fastdfs.service.FastFileStorageClient; -import com.qiwenshare.common.operation.delete.Deleter; -import com.qiwenshare.common.operation.delete.domain.DeleteFile; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Component -public class FastDFSDeleter extends Deleter { - @Autowired - private FastFileStorageClient fastFileStorageClient; - @Override - public void delete(DeleteFile deleteFile) { - fastFileStorageClient.deleteFile(deleteFile.getFileUrl().replace("M00", "group1")); - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/delete/product/LocalStorageDeleter.java b/file-common/src/main/java/com/qiwenshare/common/operation/delete/product/LocalStorageDeleter.java deleted file mode 100644 index 8043d08..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/delete/product/LocalStorageDeleter.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.qiwenshare.common.operation.delete.product; - -import com.qiwenshare.common.operation.delete.Deleter; -import com.qiwenshare.common.operation.delete.domain.DeleteFile; -import com.qiwenshare.common.operation.FileOperation; -import com.qiwenshare.common.util.FileUtil; -import com.qiwenshare.common.util.PathUtil; -import org.springframework.stereotype.Component; - -@Component -public class LocalStorageDeleter extends Deleter { - @Override - public void delete(DeleteFile deleteFile) { - FileOperation.deleteFile(PathUtil.getStaticPath() + deleteFile.getFileUrl()); - if (FileUtil.isImageFile(FileUtil.getFileExtendName(deleteFile.getFileUrl()))) { - FileOperation.deleteFile(PathUtil.getStaticPath() + deleteFile.getFileUrl().replace(deleteFile.getTimeStampName(), deleteFile.getTimeStampName() + "_min")); - } - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/download/Downloader.java b/file-common/src/main/java/com/qiwenshare/common/operation/download/Downloader.java deleted file mode 100644 index 61bf66d..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/download/Downloader.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.qiwenshare.common.operation.download; - -import com.qiwenshare.common.operation.download.domain.DownloadFile; - -import javax.servlet.http.HttpServletResponse; -import java.io.InputStream; - -public abstract class Downloader { - public abstract void download(HttpServletResponse httpServletResponse, DownloadFile uploadFile); - public abstract InputStream getInputStream(DownloadFile downloadFile); -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/download/domain/DownloadFile.java b/file-common/src/main/java/com/qiwenshare/common/operation/download/domain/DownloadFile.java deleted file mode 100644 index 02e690e..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/download/domain/DownloadFile.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.qiwenshare.common.operation.download.domain; - -import lombok.Data; - -@Data -public class DownloadFile { - private String fileUrl; -// private String timeStampName; -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/download/product/AliyunOSSDownloader.java b/file-common/src/main/java/com/qiwenshare/common/operation/download/product/AliyunOSSDownloader.java deleted file mode 100644 index c5c430c..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/download/product/AliyunOSSDownloader.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.qiwenshare.common.operation.download.product; - -import com.aliyun.oss.OSS; -import com.aliyun.oss.OSSClientBuilder; -import com.aliyun.oss.model.OSSObject; -import com.qiwenshare.common.config.QiwenFileConfig; -import com.qiwenshare.common.domain.AliyunOSS; -import com.qiwenshare.common.operation.download.domain.DownloadFile; -import com.qiwenshare.common.operation.download.Downloader; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.io.BufferedInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; - -@Component -public class AliyunOSSDownloader extends Downloader { - @Resource - QiwenFileConfig qiwenFileConfig; - @Override - public void download(HttpServletResponse httpServletResponse, DownloadFile downloadFile) { - - BufferedInputStream bis = null; - byte[] buffer = new byte[1024]; - - OSS ossClient = createOSSClient(qiwenFileConfig.getAliyun().getOss()); - OSSObject ossObject = ossClient.getObject(qiwenFileConfig.getAliyun().getOss().getBucketName(), - downloadFile.getFileUrl().substring(1)); - InputStream inputStream = ossObject.getObjectContent(); - try { - bis = new BufferedInputStream(inputStream); - OutputStream os = httpServletResponse.getOutputStream(); - int i = bis.read(buffer); - while (i != -1) { - os.write(buffer, 0, i); - i = bis.read(buffer); - } - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (bis != null) { - try { - bis.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - } - ossClient.shutdown(); - } - - @Override - public InputStream getInputStream(DownloadFile downloadFile) { - OSS ossClient = createOSSClient(qiwenFileConfig.getAliyun().getOss()); - OSSObject ossObject = ossClient.getObject(qiwenFileConfig.getAliyun().getOss().getBucketName(), - downloadFile.getFileUrl().substring(1)); - InputStream inputStream = ossObject.getObjectContent(); - return inputStream; - } - - public OSS createOSSClient(AliyunOSS aliyunOSS) { - String endpoint = aliyunOSS.getEndpoint(); - String accessKeyId = aliyunOSS.getAccessKeyId(); - String accessKeySecret = aliyunOSS.getAccessKeySecret(); - OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); - return ossClient; - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/download/product/FastDFSDownloader.java b/file-common/src/main/java/com/qiwenshare/common/operation/download/product/FastDFSDownloader.java deleted file mode 100644 index f5f671f..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/download/product/FastDFSDownloader.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.qiwenshare.common.operation.download.product; - -import com.github.tobato.fastdfs.proto.storage.DownloadByteArray; -import com.github.tobato.fastdfs.service.FastFileStorageClient; -import com.qiwenshare.common.operation.download.domain.DownloadFile; -import com.qiwenshare.common.operation.download.Downloader; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletResponse; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; - -@Component -public class FastDFSDownloader extends Downloader { - @Autowired - private FastFileStorageClient fastFileStorageClient; - @Override - public void download(HttpServletResponse httpServletResponse, DownloadFile downloadFile) { - String group = downloadFile.getFileUrl().substring(0, downloadFile.getFileUrl().indexOf("/")); - group = "group1"; - String path = downloadFile.getFileUrl().substring(downloadFile.getFileUrl().indexOf("/") + 1); - DownloadByteArray downloadByteArray = new DownloadByteArray(); - - - ServletOutputStream outputStream = null; - try { - outputStream = httpServletResponse.getOutputStream(); - byte[] bytes = fastFileStorageClient.downloadFile(group, path, downloadByteArray); - outputStream.write(bytes); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (outputStream != null) { - outputStream.flush(); - outputStream.close(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - @Override - public InputStream getInputStream(DownloadFile downloadFile) { - String group = downloadFile.getFileUrl().substring(0, downloadFile.getFileUrl().indexOf("/")); - group = "group1"; - String path = downloadFile.getFileUrl().substring(downloadFile.getFileUrl().indexOf("/") + 1); - DownloadByteArray downloadByteArray = new DownloadByteArray(); - byte[] bytes = fastFileStorageClient.downloadFile(group, path, downloadByteArray); - InputStream inputStream = new ByteArrayInputStream(bytes); - return inputStream; - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/download/product/LocalStorageDownloader.java b/file-common/src/main/java/com/qiwenshare/common/operation/download/product/LocalStorageDownloader.java deleted file mode 100644 index f08f855..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/download/product/LocalStorageDownloader.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.qiwenshare.common.operation.download.product; - -import com.qiwenshare.common.operation.download.domain.DownloadFile; -import com.qiwenshare.common.operation.FileOperation; -import com.qiwenshare.common.operation.download.Downloader; -import com.qiwenshare.common.util.PathUtil; -import org.springframework.stereotype.Component; - -import javax.servlet.http.HttpServletResponse; -import java.io.*; - -@Component -public class LocalStorageDownloader extends Downloader { - @Override - public void download(HttpServletResponse httpServletResponse, DownloadFile downloadFile) { - BufferedInputStream bis = null; - byte[] buffer = new byte[1024]; - //设置文件路径 - File file = FileOperation.newFile(PathUtil.getStaticPath() + downloadFile.getFileUrl()); - if (file.exists()) { - - - FileInputStream fis = null; - - try { - fis = new FileInputStream(file); - bis = new BufferedInputStream(fis); - OutputStream os = httpServletResponse.getOutputStream(); - int i = bis.read(buffer); - while (i != -1) { - os.write(buffer, 0, i); - i = bis.read(buffer); - } - - } catch (Exception e) { - e.printStackTrace(); - } finally { - if (bis != null) { - try { - bis.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - } - } - - @Override - public InputStream getInputStream(DownloadFile downloadFile) { - //设置文件路径 - File file = FileOperation.newFile(PathUtil.getStaticPath() + downloadFile.getFileUrl()); - InputStream inputStream = null; - try { - inputStream = new FileInputStream(file); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - return inputStream; - - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/upload/Uploader.java b/file-common/src/main/java/com/qiwenshare/common/operation/upload/Uploader.java deleted file mode 100644 index e7647e6..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/upload/Uploader.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.qiwenshare.common.operation.upload; - -import com.qiwenshare.common.operation.upload.domain.UploadFile; -import com.qiwenshare.common.util.PathUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.FileUtils; - -import javax.servlet.http.HttpServletRequest; -import java.io.File; -import java.io.IOException; -import java.io.RandomAccessFile; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; - -@Slf4j -public abstract class Uploader { - - - public static final String ROOT_PATH = "upload"; - public static final String FILE_SEPARATOR = "/"; - // 文件大小限制,单位KB - public final int maxSize = 10000000; - - public abstract List upload(HttpServletRequest request, UploadFile uploadFile); - - /** - * 获取本地文件保存路径 - * - * @return - */ - protected String getLocalFileSavePath() { - - String path = ROOT_PATH; - SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd"); - path = FILE_SEPARATOR + path + FILE_SEPARATOR + formater.format(new Date()); - - String staticPath = PathUtil.getStaticPath(); - - File dir = new File(staticPath + path); - //LOG.error(PathUtil.getStaticPath() + path); - if (!dir.exists()) { - try { - boolean isSuccessMakeDir = dir.mkdirs(); - if (!isSuccessMakeDir) { - log.error("目录创建失败:" + PathUtil.getStaticPath() + path); - } - } catch (Exception e) { - log.error("目录创建失败" + PathUtil.getStaticPath() + path); - return ""; - } - } - return path; - } - - /** - * 依据原始文件名生成新文件名 - * - * @return - */ - protected String getTimeStampName() { - try { - SecureRandom number = SecureRandom.getInstance("SHA1PRNG"); - return "" + number.nextInt(10000) - + System.currentTimeMillis(); - } catch (NoSuchAlgorithmException e) { - log.error("生成安全随机数失败"); - } - return "" - + System.currentTimeMillis(); - - } - - public synchronized boolean checkUploadStatus(UploadFile param, File confFile) throws IOException { - RandomAccessFile confAccessFile = new RandomAccessFile(confFile, "rw"); - //设置文件长度 - confAccessFile.setLength(param.getTotalChunks()); - //设置起始偏移量 - confAccessFile.seek(param.getChunkNumber() - 1); - //将指定的一个字节写入文件中 127, - confAccessFile.write(Byte.MAX_VALUE); - byte[] completeStatusList = FileUtils.readFileToByteArray(confFile); - confAccessFile.close();//不关闭会造成无法占用 - //创建conf文件文件长度为总分片数,每上传一个分块即向conf文件中写入一个127,那么没上传的位置就是默认的0,已上传的就是127 - for (int i = 0; i < completeStatusList.length; i++) { - if (completeStatusList[i] != Byte.MAX_VALUE) { - return false; - } - } - confFile.delete(); - return true; - } - - protected String getFileName(String fileName){ - if (!fileName.contains(".")) { - return fileName; - } - return fileName.substring(0, fileName.lastIndexOf(".")); - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/upload/domain/UploadFile.java b/file-common/src/main/java/com/qiwenshare/common/operation/upload/domain/UploadFile.java deleted file mode 100644 index 4a57559..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/upload/domain/UploadFile.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.qiwenshare.common.operation.upload.domain; - -import lombok.Data; - -@Data -public class UploadFile { - private String fileName; - private String fileType; - private long fileSize; - private String timeStampName; - private int success; - private String message; - private String url; - @Deprecated - private Integer isOSS; - private Integer storageType; - //切片上传相关参数 - private String taskId; - private int chunkNumber; - private long chunkSize; - private int totalChunks; - private String identifier; - private long totalSize; - private long currentChunkSize; - - -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/upload/product/AliyunOSSUploader.java b/file-common/src/main/java/com/qiwenshare/common/operation/upload/product/AliyunOSSUploader.java deleted file mode 100644 index 54a5690..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/upload/product/AliyunOSSUploader.java +++ /dev/null @@ -1,224 +0,0 @@ -package com.qiwenshare.common.operation.upload.product; - -import com.alibaba.fastjson.JSON; -import com.aliyun.oss.OSS; -import com.aliyun.oss.OSSClientBuilder; -import com.aliyun.oss.model.*; -import com.qiwenshare.common.config.QiwenFileConfig; -import com.qiwenshare.common.operation.upload.domain.UploadFile; -import com.qiwenshare.common.exception.UploadGeneralException; -import com.qiwenshare.common.operation.upload.Uploader; -import com.qiwenshare.common.util.FileUtil; -import com.qiwenshare.common.util.PathUtil; -import lombok.Data; -import lombok.extern.slf4j.Slf4j; -//import org.apache.commons.fileupload.servlet.ServletFileUpload; -import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload; -import org.springframework.stereotype.Component; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import java.io.File; -import java.util.*; -@Slf4j -@Component -public class AliyunOSSUploader extends Uploader { - @Resource - QiwenFileConfig qiwenFileConfig; - - - // partETags是PartETag的集合。PartETag由分片的ETag和分片号组成。 - public static Map> partETagsMap = new HashMap>(); - public static Map uploadPartRequestMap = new HashMap<>(); - - public static Map ossMap = new HashMap<>(); - - @Override - public List upload(HttpServletRequest httpServletRequest, UploadFile uploadFile) { - log.info("开始上传upload"); - - List saveUploadFileList = new ArrayList<>(); - StandardMultipartHttpServletRequest request = (StandardMultipartHttpServletRequest) httpServletRequest; - - boolean isMultipart = ServletFileUpload.isMultipartContent(request); - if (!isMultipart) { - throw new UploadGeneralException("未包含文件上传域"); - } - - Iterator iter = request.getFileNames(); - while (iter.hasNext()) { - - saveUploadFileList = doUpload(request, iter, uploadFile); - } - - - log.info("结束上传"); - return saveUploadFileList; - } - - private List doUpload(StandardMultipartHttpServletRequest standardMultipartHttpServletRequest, Iterator iter, UploadFile uploadFile) { - String savePath = getLocalFileSavePath(); - OSS ossClient = getClient(uploadFile); - - List saveUploadFileList = new ArrayList<>(); - - try { - MultipartFile multipartfile = standardMultipartHttpServletRequest.getFile(iter.next()); - - String timeStampName = getTimeStampName(); - String originalName = multipartfile.getOriginalFilename(); - String fileName = getFileName(originalName); - String fileType = FileUtil.getFileExtendName(originalName); - uploadFile.setFileName(fileName); - uploadFile.setFileType(fileType); - uploadFile.setTimeStampName(timeStampName); - - String ossFilePath = savePath + FILE_SEPARATOR + timeStampName + FILE_SEPARATOR + fileName + "." + fileType; - String confFilePath = savePath + FILE_SEPARATOR + uploadFile.getIdentifier() + "." + "conf"; - File confFile = new File(PathUtil.getStaticPath() + FILE_SEPARATOR + confFilePath); - - synchronized (AliyunOSSUploader.class) { - if (uploadPartRequestMap.get(uploadFile.getIdentifier()) == null) { - InitiateMultipartUploadRequest request = new InitiateMultipartUploadRequest(qiwenFileConfig.getAliyun().getOss().getBucketName(), ossFilePath.substring(1)); - InitiateMultipartUploadResult upresult = ossClient.initiateMultipartUpload(request); - String uploadId = upresult.getUploadId(); - - UploadFileInfo uploadPartRequest = new UploadFileInfo(); - uploadPartRequest.setBucketName(qiwenFileConfig.getAliyun().getOss().getBucketName()); - uploadPartRequest.setKey(ossFilePath.substring(1)); - uploadPartRequest.setUploadId(uploadId); - uploadPartRequestMap.put(uploadFile.getIdentifier(), uploadPartRequest); - } - - } - - UploadFileInfo uploadFileInfo = uploadPartRequestMap.get(uploadFile.getIdentifier()); - UploadPartRequest uploadPartRequest = new UploadPartRequest(); - uploadPartRequest.setBucketName(uploadFileInfo.getBucketName()); - uploadPartRequest.setKey(uploadFileInfo.getKey()); - uploadPartRequest.setUploadId(uploadFileInfo.getUploadId()); - uploadPartRequest.setInputStream(multipartfile.getInputStream()); - uploadPartRequest.setPartSize(uploadFile.getCurrentChunkSize()); - uploadPartRequest.setPartNumber(uploadFile.getChunkNumber()); - log.info(JSON.toJSONString(uploadPartRequest)); - - UploadPartResult uploadPartResult = ossClient.uploadPart(uploadPartRequest); - synchronized (AliyunOSSUploader.class) { - log.info("上传结果:" + JSON.toJSONString(uploadPartResult)); - if (partETagsMap.get(uploadFile.getIdentifier()) == null) { - List partETags = new ArrayList(); - partETags.add(uploadPartResult.getPartETag()); - partETagsMap.put(uploadFile.getIdentifier(), partETags); - } else { - partETagsMap.get(uploadFile.getIdentifier()).add(uploadPartResult.getPartETag()); - } - } - - boolean isComplete = checkUploadStatus(uploadFile, confFile); - if (isComplete) { - log.info("分片上传完成"); - completeMultipartUpload(uploadFile); - - uploadFile.setUrl("/" + uploadPartRequestMap.get(uploadFile.getIdentifier()).getKey()); - uploadFile.setSuccess(1); - uploadFile.setMessage("上传成功"); - partETagsMap.remove(uploadFile.getIdentifier()); - uploadPartRequestMap.remove(uploadFile.getIdentifier()); - ossMap.remove(uploadFile.getIdentifier()); - } else { - uploadFile.setSuccess(0); - uploadFile.setMessage("未完成"); - } - - } catch (Exception e) { - log.error("上传出错:" + e); - throw new UploadGeneralException(e); - } - - uploadFile.setIsOSS(1); - uploadFile.setStorageType(1); - - uploadFile.setFileSize(uploadFile.getTotalSize()); - saveUploadFileList.add(uploadFile); - return saveUploadFileList; - } - - /** - * 将文件分块进行升序排序并执行文件上传。 - */ - protected void completeMultipartUpload(UploadFile uploadFile) { - - List partETags = partETagsMap.get(uploadFile.getIdentifier()); - Collections.sort(partETags, Comparator.comparingInt(PartETag::getPartNumber)); - UploadFileInfo uploadFileInfo = uploadPartRequestMap.get(uploadFile.getIdentifier()); - CompleteMultipartUploadRequest completeMultipartUploadRequest = - new CompleteMultipartUploadRequest(qiwenFileConfig.getAliyun().getOss().getBucketName(), - uploadFileInfo.getKey(), - uploadFileInfo.getUploadId(), - partETags); - log.info("----:" + JSON.toJSONString(partETags)); - // 完成上传。 - CompleteMultipartUploadResult completeMultipartUploadResult = getClient(uploadFile).completeMultipartUpload(completeMultipartUploadRequest); - log.info("----:" + JSON.toJSONString(completeMultipartUploadRequest)); - getClient(uploadFile).shutdown(); - -// - } - - private void listFile(UploadFile uploadFile) { - // 列举已上传的分片,其中uploadId来自于InitiateMultipartUpload返回的结果。 - ListPartsRequest listPartsRequest = new ListPartsRequest(qiwenFileConfig.getAliyun().getOss().getBucketName(), uploadPartRequestMap.get(uploadFile.getIdentifier()).getKey(), uploadPartRequestMap.get(uploadFile.getIdentifier()).getUploadId()); - // 设置uploadId。 - //listPartsRequest.setUploadId(uploadId); - // 设置分页时每一页中分片数量为100个。默认列举1000个分片。 - listPartsRequest.setMaxParts(100); - // 指定List的起始位置。只有分片号大于此参数值的分片会被列举。 -// listPartsRequest.setPartNumberMarker(1); - PartListing partListing = getClient(uploadFile).listParts(listPartsRequest); - - for (PartSummary part : partListing.getParts()) { - log.info("分片号:"+part.getPartNumber() + ", 分片数据大小: "+ - part.getSize() + ",分片的ETag:"+part.getETag() - + ", 分片最后修改时间:"+ part.getLastModified()); - // 获取分片号。 - part.getPartNumber(); - // 获取分片数据大小。 - part.getSize(); - // 获取分片的ETag。 - part.getETag(); - // 获取分片的最后修改时间。 - part.getLastModified(); - } - - } - - /** - * 取消上传 - */ - private void cancelUpload(UploadFile uploadFile) { - AbortMultipartUploadRequest abortMultipartUploadRequest = - new AbortMultipartUploadRequest(qiwenFileConfig.getAliyun().getOss().getBucketName(), uploadPartRequestMap.get(uploadFile.getIdentifier()).getKey(), uploadPartRequestMap.get(uploadFile.getIdentifier()).getUploadId()); - getClient(uploadFile).abortMultipartUpload(abortMultipartUploadRequest); - } - - private synchronized OSS getClient(UploadFile uploadFile) { - OSS ossClient = null; - if (ossMap.get(uploadFile.getIdentifier()) == null) { - ossClient = new OSSClientBuilder().build(qiwenFileConfig.getAliyun().getOss().getEndpoint(), qiwenFileConfig.getAliyun().getOss().getAccessKeyId(), qiwenFileConfig.getAliyun().getOss().getAccessKeySecret()); - ossMap.put(uploadFile.getIdentifier(), ossClient); - } else { - ossClient = ossMap.get(uploadFile.getIdentifier()); - } - return ossClient; - } - - @Data - public class UploadFileInfo { - private String bucketName; - private String key; - private String uploadId; - } - -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/upload/product/FastDFSUploader.java b/file-common/src/main/java/com/qiwenshare/common/operation/upload/product/FastDFSUploader.java deleted file mode 100644 index 93ea3c2..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/upload/product/FastDFSUploader.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.qiwenshare.common.operation.upload.product; - -import com.github.tobato.fastdfs.domain.StorePath; -import com.github.tobato.fastdfs.service.AppendFileStorageClient; -import com.qiwenshare.common.exception.UploadGeneralException; -import com.qiwenshare.common.operation.upload.Uploader; -import com.qiwenshare.common.operation.upload.domain.UploadFile; -import com.qiwenshare.common.util.FileUtil; -import com.qiwenshare.common.util.PathUtil; -import com.qiwenshare.common.util.concurrent.locks.RedisLock; -import com.qiwenshare.common.util.RedisUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory; -import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload; -import org.springframework.stereotype.Component; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import java.io.File; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.concurrent.TimeUnit; - -@Component -@Slf4j -public class FastDFSUploader extends Uploader { - - @Resource - AppendFileStorageClient defaultAppendFileStorageClient; - @Resource - RedisLock redisLock; - @Resource - RedisUtil redisUtil; - - @Override - public List upload(HttpServletRequest request, UploadFile uploadFile) { - - List saveUploadFileList = new ArrayList<>(); - StandardMultipartHttpServletRequest standardMultipartHttpServletRequest = (StandardMultipartHttpServletRequest) request; - - boolean isMultipart = ServletFileUpload.isMultipartContent(standardMultipartHttpServletRequest); - if (!isMultipart) { - throw new UploadGeneralException("未包含文件上传域"); - } - - String savePath = getLocalFileSavePath(); - - try { - - Iterator iter = standardMultipartHttpServletRequest.getFileNames(); - while (iter.hasNext()) { - saveUploadFileList = doUpload(standardMultipartHttpServletRequest, savePath, iter, uploadFile); - } - } catch (Exception e) { - throw new UploadGeneralException(e); - } - - log.info("结束上传"); - return saveUploadFileList; - } - - - private List doUpload(StandardMultipartHttpServletRequest standardMultipartHttpServletRequest, String savePath, Iterator iter, UploadFile uploadFile) { - - List saveUploadFileList = new ArrayList<>(); - - try { - MultipartFile multipartfile = standardMultipartHttpServletRequest.getFile(iter.next()); - - uploadFileChunk(multipartfile, uploadFile); - - String timeStampName = getTimeStampName(); - String originalName = multipartfile.getOriginalFilename(); - - String fileName = getFileName(originalName); - - String fileType = FileUtil.getFileExtendName(originalName); - uploadFile.setFileName(fileName); - uploadFile.setFileType(fileType); - uploadFile.setTimeStampName(timeStampName); - - - String confFilePath = savePath + FILE_SEPARATOR + uploadFile.getIdentifier() + "." + "conf"; - File confFile = new File(PathUtil.getStaticPath() + FILE_SEPARATOR + confFilePath); - - - boolean isComplete = checkUploadStatus(uploadFile, confFile); - if (isComplete) { - log.info("分片上传完成"); - String path = redisUtil.getObject(uploadFile.getIdentifier() + "_storage_path"); - uploadFile.setUrl(path); - uploadFile.setSuccess(1); - uploadFile.setMessage("上传成功"); - } else { - uploadFile.setSuccess(0); - uploadFile.setMessage("未完成"); - } - - } catch (Exception e) { - throw new UploadGeneralException(e); - } - - uploadFile.setIsOSS(0); - uploadFile.setStorageType(2); - uploadFile.setFileSize(uploadFile.getTotalSize()); - saveUploadFileList.add(uploadFile); - return saveUploadFileList; - } - - public void uploadFileChunk(MultipartFile multipartFile, UploadFile uploadFile) { - redisLock.lock(uploadFile.getIdentifier()); - try { - - if (redisUtil.getObject(uploadFile.getIdentifier() + "_current_upload_chunk_number") == null) { - redisUtil.set(uploadFile.getIdentifier() + "_current_upload_chunk_number", 1, 1000 * 60 * 60); - } - - String currentUploadChunkNumber = redisUtil.getObject(uploadFile.getIdentifier() + "_current_upload_chunk_number"); - if (uploadFile.getChunkNumber() != Integer.parseInt(currentUploadChunkNumber)) { - redisLock.unlock(uploadFile.getIdentifier()); - while (redisLock.tryLock(uploadFile.getIdentifier(), 300, TimeUnit.SECONDS)) { - if (uploadFile.getChunkNumber() == Integer.parseInt(redisUtil.getObject(uploadFile.getIdentifier() + "_current_upload_chunk_number"))) { - break; - } else { - redisLock.unlock(uploadFile.getIdentifier()); - } - } - } - - log.info("***********开始上传第{}块**********", uploadFile.getChunkNumber()); - StorePath storePath = null; - redisUtil.getIncr(uploadFile.getIdentifier() + "_current_upload_chunk_number"); - - if (uploadFile.getChunkNumber() <= 1) { - log.info("上传第一块"); - - storePath = defaultAppendFileStorageClient.uploadAppenderFile("group1", multipartFile.getInputStream(), - multipartFile.getSize(), FileUtil.getFileExtendName(multipartFile.getOriginalFilename())); - // 记录第一个分片上传的大小 - redisUtil.set(uploadFile.getIdentifier() + "_uploaded_size", uploadFile.getCurrentChunkSize(), 1000 * 60 * 60); - - log.info("第一块上传完成"); - if (storePath == null) { - redisUtil.set(uploadFile.getIdentifier() + "_current_upload_chunk_number", uploadFile.getChunkNumber(), 1000 * 60 * 60); - - log.info("获取远程文件路径出错"); - throw new UploadGeneralException("获取远程文件路径出错"); - } - - redisUtil.set(uploadFile.getIdentifier() + "_storage_path", storePath.getPath(), 1000 * 60 * 60); - - log.info("上传文件 result = {}", storePath.getPath()); - } else { - log.info("正在上传第{}块:" , uploadFile.getChunkNumber()); - - String path = redisUtil.getObject(uploadFile.getIdentifier() + "_storage_path"); - - if (path == null) { - log.error("无法获取已上传服务器文件地址"); - throw new UploadGeneralException("无法获取已上传服务器文件地址"); - } - - String uploadedSizeStr = redisUtil.getObject(uploadFile.getIdentifier() + "_uploaded_size"); - Long alreadySize = Long.parseLong(uploadedSizeStr); - - // 追加方式实际实用如果中途出错多次,可能会出现重复追加情况,这里改成修改模式,即时多次传来重复文件块,依然可以保证文件拼接正确 - defaultAppendFileStorageClient.modifyFile("group1", path, multipartFile.getInputStream(), - multipartFile.getSize(), alreadySize); - // 记录分片上传的大小 - redisUtil.set(uploadFile.getIdentifier() + "_uploaded_size", alreadySize + multipartFile.getSize(), 1000 * 60 * 60); - - } - log.info("***********第{}块上传成功**********", uploadFile.getChunkNumber()); - } catch (Exception e) { - log.error("***********第{}块上传失败,自动重试**********", uploadFile.getChunkNumber()); - redisUtil.set(uploadFile.getIdentifier() + "_current_upload_chunk_number", uploadFile.getChunkNumber(), 1000 * 60 * 60); - throw new UploadGeneralException("更新远程文件出错", e); - } finally { - redisLock.unlock(uploadFile.getIdentifier()); - } - - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/upload/product/LocalStorageUploader.java b/file-common/src/main/java/com/qiwenshare/common/operation/upload/product/LocalStorageUploader.java deleted file mode 100644 index aab6d6d..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/operation/upload/product/LocalStorageUploader.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.qiwenshare.common.operation.upload.product; - -import com.qiwenshare.common.exception.NotSameFileExpection; -import com.qiwenshare.common.operation.upload.domain.UploadFile; -import com.qiwenshare.common.exception.UploadGeneralException; -import com.qiwenshare.common.operation.ImageOperation; -import com.qiwenshare.common.operation.upload.Uploader; -import com.qiwenshare.common.util.FileUtil; -import com.qiwenshare.common.util.PathUtil; -import org.apache.commons.codec.digest.DigestUtils; -//import org.apache.commons.fileupload.servlet.ServletFileUpload; -import org.apache.commons.lang3.StringUtils; -import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest; - -import javax.servlet.http.HttpServletRequest; -import java.io.*; -import java.nio.ByteBuffer; -import java.nio.channels.FileChannel; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.UUID; -@Component -public class LocalStorageUploader extends Uploader { - - @Override - public List upload(HttpServletRequest httpServletRequest,UploadFile uploadFile) { - List saveUploadFileList = new ArrayList(); - StandardMultipartHttpServletRequest standardMultipartHttpServletRequest = (StandardMultipartHttpServletRequest) httpServletRequest; - boolean isMultipart = ServletFileUpload.isMultipartContent(standardMultipartHttpServletRequest); - if (!isMultipart) { - throw new UploadGeneralException("未包含文件上传域"); - } - - try { - - Iterator iter = standardMultipartHttpServletRequest.getFileNames(); - while (iter.hasNext()) { - saveUploadFileList = doUpload(standardMultipartHttpServletRequest, iter, uploadFile); - } - } catch (IOException e) { - throw new UploadGeneralException("未包含文件上传域"); - } catch (NotSameFileExpection notSameFileExpection) { - notSameFileExpection.printStackTrace(); - } - return saveUploadFileList; - } - - private List doUpload(StandardMultipartHttpServletRequest standardMultipartHttpServletRequest, Iterator iter, UploadFile uploadFile) throws IOException, NotSameFileExpection { - String savePath = getLocalFileSavePath(); - List saveUploadFileList = new ArrayList(); - MultipartFile multipartfile = standardMultipartHttpServletRequest.getFile(iter.next()); - - String timeStampName = uploadFile.getIdentifier(); - - String originalName = multipartfile.getOriginalFilename(); - - String fileName = getFileName(originalName); - String fileType = FileUtil.getFileExtendName(originalName); - uploadFile.setFileName(fileName); - uploadFile.setFileType(fileType); - uploadFile.setTimeStampName(timeStampName); - - String saveFilePath = savePath + FILE_SEPARATOR + timeStampName + "." + fileType; - String tempFilePath = savePath + FILE_SEPARATOR + timeStampName + "." + fileType + "_tmp"; - String minFilePath = savePath + FILE_SEPARATOR + timeStampName + "_min" + "." + fileType; - String confFilePath = savePath + FILE_SEPARATOR + timeStampName + "." + "conf"; - File file = new File(PathUtil.getStaticPath() + FILE_SEPARATOR + saveFilePath); - File tempFile = new File(PathUtil.getStaticPath() + FILE_SEPARATOR + tempFilePath); - File minFile = new File(PathUtil.getStaticPath() + FILE_SEPARATOR + minFilePath); - File confFile = new File(PathUtil.getStaticPath() + FILE_SEPARATOR + confFilePath); - uploadFile.setIsOSS(0); - uploadFile.setStorageType(0); - uploadFile.setUrl(saveFilePath); - - if (StringUtils.isEmpty(uploadFile.getTaskId())) { - uploadFile.setTaskId(UUID.randomUUID().toString()); - } - - //第一步 打开将要写入的文件 - RandomAccessFile raf = new RandomAccessFile(tempFile, "rw"); - //第二步 打开通道 - FileChannel fileChannel = raf.getChannel(); - //第三步 计算偏移量 - long position = (uploadFile.getChunkNumber() - 1) * uploadFile.getChunkSize(); - //第四步 获取分片数据 - byte[] fileData = multipartfile.getBytes(); - //第五步 写入数据 - fileChannel.position(position); - fileChannel.write(ByteBuffer.wrap(fileData)); - fileChannel.force(true); - fileChannel.close(); - raf.close(); - //判断是否完成文件的传输并进行校验与重命名 - boolean isComplete = checkUploadStatus(uploadFile, confFile); - if (isComplete) { - FileInputStream fileInputStream = new FileInputStream(tempFile.getPath()); - String md5 = DigestUtils.md5Hex(fileInputStream); - fileInputStream.close(); - if (StringUtils.isNotBlank(md5) && !md5.equals(uploadFile.getIdentifier())) { - throw new NotSameFileExpection(); - } - tempFile.renameTo(file); - if (FileUtil.isImageFile(uploadFile.getFileType())){ - ImageOperation.thumbnailsImage(file, minFile, 300); - } - - uploadFile.setSuccess(1); - uploadFile.setMessage("上传成功"); - } else { - uploadFile.setSuccess(0); - uploadFile.setMessage("未完成"); - } - uploadFile.setFileSize(uploadFile.getTotalSize()); - saveUploadFileList.add(uploadFile); - - return saveUploadFileList; - } - -} diff --git a/file-common/src/main/java/com/qiwenshare/common/result/RestResult.java b/file-common/src/main/java/com/qiwenshare/common/result/RestResult.java deleted file mode 100644 index 361f3fd..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/result/RestResult.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.qiwenshare.common.result; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -/** - * 统一结果返回 - * @param - */ -@Data -@Schema(name = "统一结果返回",required = true) -public class RestResult { - @Schema(description = "请求是否成功", example = "true") - private Boolean success = true; - @Schema(description = "返回码", example = "20000") - private Integer code; - @Schema(description = "返回信息", example = "成功") - private String message; - @Schema(description = "返回数据") - private T data; - - // 通用返回成功 - public static RestResult success() { - RestResult r = new RestResult(); - r.setSuccess(ResultCodeEnum.SUCCESS.getSuccess()); - r.setCode(ResultCodeEnum.SUCCESS.getCode()); - r.setMessage(ResultCodeEnum.SUCCESS.getMessage()); - return r; - } - - // 通用返回失败,未知错误 - public static RestResult fail() { - RestResult r = new RestResult(); - r.setSuccess(ResultCodeEnum.UNKNOWN_ERROR.getSuccess()); - r.setCode(ResultCodeEnum.UNKNOWN_ERROR.getCode()); - r.setMessage(ResultCodeEnum.UNKNOWN_ERROR.getMessage()); - return r; - } - - // 设置结果,形参为结果枚举 - public static RestResult setResult(ResultCodeEnum result) { - RestResult r = new RestResult(); - r.setSuccess(result.getSuccess()); - r.setCode(result.getCode()); - r.setMessage(result.getMessage()); - return r; - } - - // 自定义返回数据 - public RestResult data(T param) { - this.setData(param); - return this; - } - - // 自定义状态信息 - public RestResult message(String message) { - this.setMessage(message); - return this; - } - - // 自定义状态码 - public RestResult code(Integer code) { - this.setCode(code); - return this; - } - - // 自定义返回结果 - public RestResult success(Boolean success) { - this.setSuccess(success); - return this; - } - -} diff --git a/file-common/src/main/java/com/qiwenshare/common/result/ResultCodeEnum.java b/file-common/src/main/java/com/qiwenshare/common/result/ResultCodeEnum.java deleted file mode 100644 index 46ac16a..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/result/ResultCodeEnum.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.qiwenshare.common.result; - -import lombok.Getter; - -/** - * 结果类枚举 - */ -@Getter -public enum ResultCodeEnum { - SUCCESS(true,20000,"成功"), - UNKNOWN_ERROR(false,20001,"未知错误"), - PARAM_ERROR(false,20002,"参数错误"), - NULL_POINT(false, 20003, "空指针异常"), - INDEX_OUT_OF_BOUNDS(false, 20004, "下标越界异常"), - REQUEST_TIMEOUT(false, 20005, "请求超时"), - NOT_LOGIN_ERROR(false, 20006, "未登录异常"), - ; - - // 响应是否成功 - private Boolean success; - // 响应状态码 - private Integer code; - // 响应信息 - private String message; - - ResultCodeEnum(boolean success, Integer code, String message) { - this.success = success; - this.code = code; - this.message = message; - } -} \ No newline at end of file diff --git a/file-common/src/main/java/com/qiwenshare/common/util/CollectUtil.java b/file-common/src/main/java/com/qiwenshare/common/util/CollectUtil.java deleted file mode 100644 index e8fd047..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/util/CollectUtil.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.qiwenshare.common.util; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.servlet.http.HttpServletRequest; -import java.net.InetAddress; -import java.net.UnknownHostException; - -/** - * 通信工具类 - * - * @author ma116 - */ -public class CollectUtil { - - private static final Logger LOG = LoggerFactory.getLogger(CollectUtil.class); - - /** - * java 后台获取访问客户端ip地址 - * - * @param request HttpServletRequest请求 - * @return IP地址 - */ - public String getClientIpAddress(HttpServletRequest request) { - String clientIp = request.getHeader("x-forwarded-for"); - if (clientIp == null || clientIp.length() == 0 - || "unknown".equalsIgnoreCase(clientIp)) { - clientIp = request.getHeader("Proxy-Client-IP"); - } - if (clientIp == null || clientIp.length() == 0 - || "unknown".equalsIgnoreCase(clientIp)) { - clientIp = request.getHeader("WL-Proxy-Client-IP"); - } - if (clientIp == null || clientIp.length() == 0 - || "unknown".equalsIgnoreCase(clientIp)) { - clientIp = request.getRemoteAddr(); - } - return clientIp; - } - - /** - * 获取本地IP - * - * @return IP地址 - */ - public String getLocalIp() { - InetAddress addr = null; - String ip = ""; - try { - addr = InetAddress.getLocalHost(); - } catch (UnknownHostException e) { - LOG.error("获取本地IP失败"); - } - if (addr != null) { - ip = addr.getHostAddress().toString(); - } - return ip; - } - -} diff --git a/file-common/src/main/java/com/qiwenshare/common/util/DateUtil.java b/file-common/src/main/java/com/qiwenshare/common/util/DateUtil.java deleted file mode 100644 index 2df5b2e..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/util/DateUtil.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.qiwenshare.common.util; - -import cn.hutool.captcha.generator.RandomGenerator; -import cn.hutool.core.util.RandomUtil; -import org.apache.commons.lang3.RandomUtils; - -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; - -public class DateUtil { - - /** - * 获取系统当前时间 - * - * @return 系统当前时间 - */ - public static String getCurrentTime() { - Date date = new Date(); - String stringDate = String.format("%tF % getFileExtendsByType(int fileType) { - - List fileExtends; - switch (fileType) { - case IMAGE_TYPE: - fileExtends = Arrays.asList(IMG_FILE); - break; - case DOC_TYPE: - fileExtends = Arrays.asList(DOC_FILE); - break; - case VIDEO_TYPE: - fileExtends = Arrays.asList(VIDEO_FILE); - break; - case MUSIC_TYPE: - fileExtends = Arrays.asList(MUSIC_FILE); - break; - default: - fileExtends = new ArrayList<>(); - break; - - - } - return fileExtends; - } - - /** - * 判断是否为图片文件 - * - * @param extendName 文件扩展名 - * @return 是否为图片文件 - */ - public static boolean isImageFile(String extendName) { - for (int i = 0; i < IMG_FILE.length; i++) { - if (extendName.equalsIgnoreCase(IMG_FILE[i])) { - return true; - } - } - return false; - } - - - - public static String pathSplitFormat(String filePath) { - String path = filePath.replace("///", "/") - .replace("//", "/") - .replace("\\\\\\", "\\") - .replace("\\\\", "\\"); - return path; - } - - /** - * 获取文件扩展名 - * @param fileName 文件名 - * @return 文件扩展名 - */ - public static String getFileExtendName(String fileName) { - if (fileName.lastIndexOf(".") == -1) { - return ""; - } - return fileName.substring(fileName.lastIndexOf(".") + 1); - } - - /** - * 获取不包含扩展名的文件名 - * - * @param fileName 文件名 - * @return 文件名(不带扩展名) - */ - public static String getFileNameNotExtend(String fileName) { - String fileType = getFileExtendName(fileName); - return fileName.replace("." + fileType, ""); - } - - -} diff --git a/file-common/src/main/java/com/qiwenshare/common/util/JjwtUtil.java b/file-common/src/main/java/com/qiwenshare/common/util/JjwtUtil.java deleted file mode 100644 index 59f0fa9..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/util/JjwtUtil.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.qiwenshare.common.util; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.JwtBuilder; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import org.apache.commons.codec.binary.Base64; -//import org.apache.commons.net.util.Base64; - -import javax.crypto.SecretKey; -import javax.crypto.spec.SecretKeySpec; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -public class JjwtUtil { - - // jti:jwt的唯一身份标识 - public static final String JWT_ID = UUID.randomUUID().toString(); - - // 加密密文,私钥 - public static final String JWT_SECRET = "jiamimiwen"; - - // 过期时间,单位毫秒 - public static final int EXPIRE_TIME = 60 * 60 * 1000 * 24 * 7; // 一个星期 - - // 由字符串生成加密key - public static SecretKey generalKey() { - String secret = JWT_SECRET; - // 本地的密码解码 - byte[] encodedKey = Base64.decodeBase64(JWT_SECRET); - // 根据给定的字节数组使用AES加密算法构造一个密钥 - SecretKey key = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES"); - return key; - } - - // 创建jwt - public static String createJWT(String issuer, String audience, String subject) throws Exception { - // 设置头部信息 -// Map header = new HashMap(); -// header.put("typ", "JWT"); -// header.put("alg", "HS256"); - // 或 - // 指定header那部分签名的时候使用的签名算法,jjwt已经将这部分内容封装好了,只有{"alg":"HS256"} - SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256; - // 创建payload的私有声明(根据特定的业务需要添加,如果要拿这个做验证,一般是需要和jwt的接收方提前沟通好验证的方式) - Map claims = new HashMap<>(2); - claims.put("username", "admin"); - claims.put("password", "010203"); - // jti用户id,例如:20da39f8-b74e-4a9b-9a0f-a39f1f73fe64 - String jwtId = JWT_ID; - // 生成JWT的时间 - long nowTime = System.currentTimeMillis(); - Date issuedAt = new Date(nowTime); - // 生成签名的时候使用的秘钥secret,切记这个秘钥不能外露,是你服务端的私钥,在任何场景都不应该流露出去,一旦客户端得知这个secret,那就意味着客户端是可以自我签发jwt的 - SecretKey key = generalKey(); - // 为payload添加各种标准声明和私有声明 - JwtBuilder builder = Jwts.builder() // 表示new一个JwtBuilder,设置jwt的body -// .setHeader(header) // 设置头部信息 - .setClaims(claims) // 如果有私有声明,一定要先设置自己创建的这个私有声明,这是给builder的claim赋值,一旦写在标准的声明赋值之后,就是覆盖了那些标准的声明 - .setId(jwtId) // jti(JWT ID):jwt的唯一身份标识,根据业务需要,可以设置为一个不重复的值,主要用来作为一次性token,从而回避重放攻击 - .setIssuedAt(issuedAt) // iat(issuedAt):jwt的签发时间 - .setIssuer(issuer) // iss(issuer):jwt签发者 - .setSubject(subject) // sub(subject):jwt所面向的用户,放登录的用户名,一个json格式的字符串,可存放userid,roldid之类,作为用户的唯一标志 - .signWith(signatureAlgorithm, key); // 设置签名,使用的是签名算法和签名使用的秘钥 - // 设置过期时间 - long expTime = EXPIRE_TIME; - if (expTime >= 0) { - long exp = nowTime + expTime; - builder.setExpiration(new Date(exp)); - } - // 设置jwt接收者 - if (audience == null || "".equals(audience)) { - builder.setAudience("Tom"); - } else { - builder.setAudience(audience); - } - return builder.compact(); - } - - // 解密jwt - public static Claims parseJWT(String jwt) throws Exception { - SecretKey key = generalKey(); // 签名秘钥,和生成的签名的秘钥一模一样 - Claims claims = Jwts.parser() // 得到DefaultJwtParser - .setSigningKey(key) // 设置签名的秘钥 - .parseClaimsJws(jwt).getBody(); // 设置需要解析的jwt - return claims; - } - - -} \ No newline at end of file diff --git a/file-common/src/main/java/com/qiwenshare/common/util/MimeUtils.java b/file-common/src/main/java/com/qiwenshare/common/util/MimeUtils.java deleted file mode 100644 index 6ca33df..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/util/MimeUtils.java +++ /dev/null @@ -1,202 +0,0 @@ -package com.qiwenshare.common.util; - -import java.util.HashMap; -import java.util.Map; - -public class MimeUtils { - - public static String getMime(String suffix){ - return map.get(suffix); - } - private static Map map=new HashMap(); - static{ - map.put("323","text/h323"); - map.put("acx","application/internet-property-stream"); - map.put("ai","application/postscript"); - map.put("aif","audio/x-aiff"); - map.put("aifc","audio/x-aiff"); - map.put("aiff","audio/x-aiff"); - map.put("asf","video/x-ms-asf"); - map.put("asr","video/x-ms-asf"); - map.put("asx","video/x-ms-asf"); - map.put("au","audio/basic"); - map.put("avi","video/x-msvideo"); - map.put("axs","application/olescript"); - map.put("bas","text/plain"); - map.put("bcpio","application/x-bcpio"); - map.put("bin","application/octet-stream"); - map.put("bmp","image/bmp"); - map.put("c","text/plain"); - map.put("cat","application/vnd.ms-pkiseccat"); - map.put("cdf","application/x-cdf"); - map.put("cer","application/x-x509-ca-cert"); - map.put("class","application/octet-stream"); - map.put("clp","application/x-msclip"); - map.put("cmx","image/x-cmx"); - map.put("cod","image/cis-cod"); - map.put("cpio","application/x-cpio"); - map.put("crd","application/x-mscardfile"); - map.put("crl","application/pkix-crl"); - map.put("crt","application/x-x509-ca-cert"); - map.put("csh","application/x-csh"); - map.put("css","text/css"); - map.put("dcr","application/x-director"); - map.put("der","application/x-x509-ca-cert"); - map.put("dir","application/x-director"); - map.put("dll","application/x-msdownload"); - map.put("dms","application/octet-stream"); - map.put("doc","application/msword"); - map.put("dot","application/msword"); - map.put("dvi","application/x-dvi"); - map.put("dxr","application/x-director"); - map.put("eps","application/postscript"); - map.put("etx","text/x-setext"); - map.put("evy","application/envoy"); - map.put("exe","application/octet-stream"); - map.put("fif","application/fractals"); - map.put("flr","x-world/x-vrml"); - map.put("gif","image/gif"); - map.put("gtar","application/x-gtar"); - map.put("gz","application/x-gzip"); - map.put("h","text/plain"); - map.put("hdf","application/x-hdf"); - map.put("hlp","application/winhlp"); - map.put("hqx","application/mac-binhex40"); - map.put("hta","application/hta"); - map.put("htc","text/x-component"); - map.put("htm","text/plain"); - map.put("html","text/plain"); - map.put("htt","text/webviewhtml"); - map.put("ico","image/x-icon"); - map.put("ief","image/ief"); - map.put("iii","application/x-iphone"); - map.put("ins","application/x-internet-signup"); - map.put("isp","application/x-internet-signup"); - map.put("jfif","image/pipeg"); - map.put("jpe","image/jpeg"); - map.put("jpeg","image/jpeg"); - map.put("jpg","image/jpeg"); - map.put("js","application/x-javascript"); - map.put("latex","application/x-latex"); - map.put("lha","application/octet-stream"); - map.put("lsf","video/x-la-asf"); - map.put("lsx","video/x-la-asf"); - map.put("lzh","application/octet-stream"); - map.put("m13","application/x-msmediaview"); - map.put("m14","application/x-msmediaview"); - map.put("m3u","audio/x-mpegurl"); - map.put("man","application/x-troff-man"); - map.put("mdb","application/x-msaccess"); - map.put("me","application/x-troff-me"); - map.put("mht","message/rfc822"); - map.put("mhtml","message/rfc822"); - map.put("mid","audio/mid"); - map.put("mny","application/x-msmoney"); - map.put("mov","video/quicktime"); - map.put("movie","video/x-sgi-movie"); - map.put("mp2","video/mpeg"); - map.put("mp3","audio/mpeg"); - map.put("mp4","video/mp4"); - map.put("mpa","video/mpeg"); - map.put("mpe","video/mpeg"); - map.put("mpeg","video/mpeg"); - map.put("mpg","video/mpeg"); - map.put("mpp","application/vnd.ms-project"); - map.put("mpv2","video/mpeg"); - map.put("ms","application/x-troff-ms"); - map.put("mvb","application/x-msmediaview"); - map.put("nws","message/rfc822"); - map.put("oda","application/oda"); - map.put("p10","application/pkcs10"); - map.put("p12","application/x-pkcs12"); - map.put("p7b","application/x-pkcs7-certificates"); - map.put("p7c","application/x-pkcs7-mime"); - map.put("p7m","application/x-pkcs7-mime"); - map.put("p7r","application/x-pkcs7-certreqresp"); - map.put("p7s","application/x-pkcs7-signature"); - map.put("pbm","image/x-portable-bitmap"); - map.put("pdf","application/pdf"); - map.put("pfx","application/x-pkcs12"); - map.put("pgm","image/x-portable-graymap"); - map.put("pko","application/ynd.ms-pkipko"); - map.put("pma","application/x-perfmon"); - map.put("pmc","application/x-perfmon"); - map.put("pml","application/x-perfmon"); - map.put("pmr","application/x-perfmon"); - map.put("pmw","application/x-perfmon"); - map.put("pnm","image/x-portable-anymap"); - map.put("pot,","application/vnd.ms-powerpoint"); - map.put("ppm","image/x-portable-pixmap"); - map.put("pps","application/vnd.ms-powerpoint"); - map.put("ppt","application/vnd.ms-powerpoint"); - map.put("prf","application/pics-rules"); - map.put("ps","application/postscript"); - map.put("pub","application/x-mspublisher"); - map.put("qt","video/quicktime"); - map.put("ra","audio/x-pn-realaudio"); - map.put("ram","audio/x-pn-realaudio"); - map.put("ras","image/x-cmu-raster"); - map.put("rgb","image/x-rgb"); - map.put("rmi","audio/mid"); - map.put("roff","application/x-troff"); - map.put("rtf","application/rtf"); - map.put("rtx","text/richtext"); - map.put("scd","application/x-msschedule"); - map.put("sct","text/scriptlet"); - map.put("setpay","application/set-payment-initiation"); - map.put("setreg","application/set-registration-initiation"); - map.put("sh","application/x-sh"); - map.put("shar","application/x-shar"); - map.put("sit","application/x-stuffit"); - map.put("snd","audio/basic"); - map.put("spc","application/x-pkcs7-certificates"); - map.put("spl","application/futuresplash"); - map.put("src","application/x-wais-source"); - map.put("sst","application/vnd.ms-pkicertstore"); - map.put("stl","application/vnd.ms-pkistl"); - map.put("stm","text/html"); - map.put("svg","image/svg+xml"); - map.put("sv4cpio","application/x-sv4cpio"); - map.put("sv4crc","application/x-sv4crc"); - map.put("swf","application/x-shockwave-flash"); - map.put("t","application/x-troff"); - map.put("tar","application/x-tar"); - map.put("tcl","application/x-tcl"); - map.put("tex","application/x-tex"); - map.put("texi","application/x-texinfo"); - map.put("texinfo","application/x-texinfo"); - map.put("tgz","application/x-compressed"); - map.put("tif","image/tiff"); - map.put("tiff","image/tiff"); - map.put("tr","application/x-troff"); - map.put("trm","application/x-msterminal"); - map.put("tsv","text/tab-separated-values"); - map.put("txt","text/plain"); - map.put("uls","text/iuls"); - map.put("ustar","application/x-ustar"); - map.put("vcf","text/x-vcard"); - map.put("vrml","x-world/x-vrml"); - map.put("wav","audio/x-wav"); - map.put("wcm","application/vnd.ms-works"); - map.put("wdb","application/vnd.ms-works"); - map.put("wks","application/vnd.ms-works"); - map.put("wmf","application/x-msmetafile"); - map.put("wps","application/vnd.ms-works"); - map.put("wri","application/x-mswrite"); - map.put("wrl","x-world/x-vrml"); - map.put("wrz","x-world/x-vrml"); - map.put("xaf","x-world/x-vrml"); - map.put("xbm","image/x-xbitmap"); - map.put("xla","application/vnd.ms-excel"); - map.put("xlc","application/vnd.ms-excel"); - map.put("xlm","application/vnd.ms-excel"); - map.put("xls","application/vnd.ms-excel"); - map.put("xlt","application/vnd.ms-excel"); - map.put("xlw","application/vnd.ms-excel"); - map.put("xof","x-world/x-vrml"); - map.put("xpm","image/x-xpixmap"); - map.put("xwd","image/x-xwindowdump"); - map.put("z","application/x-compress"); - map.put("zip","application/zip"); - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/util/PasswordUtil.java b/file-common/src/main/java/com/qiwenshare/common/util/PasswordUtil.java deleted file mode 100644 index 7fb3e8e..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/util/PasswordUtil.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.qiwenshare.common.util; - -import java.util.Random; - -public class PasswordUtil { - public static String getSaltValue() { - Random r = new Random(); - StringBuilder sb = new StringBuilder(16); - sb.append(r.nextInt(99999999)).append(r.nextInt(99999999)); - int len = sb.length(); - if (len < 16) { - for (int i = 0; i < 16 - len; i++) { - sb.append("0"); - } - } - String salt = sb.toString(); - return salt; - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/util/PathUtil.java b/file-common/src/main/java/com/qiwenshare/common/util/PathUtil.java deleted file mode 100644 index 3c09799..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/util/PathUtil.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.qiwenshare.common.util; - -import cn.hutool.core.util.RandomUtil; -import com.qiwenshare.common.constant.FileConstant; -import org.apache.commons.lang3.StringUtils; -import org.springframework.util.ResourceUtils; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; - -public class PathUtil { - /** - * 获取项目所在的根目录路径 resources路径 - * @return - */ - public static String getProjectRootPath() { - String absolutePath = null; - try { - String url = ResourceUtils.getURL("classpath:").getPath(); - absolutePath = urlDecode(new File(url).getAbsolutePath()) + File.separator; - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - - return absolutePath; - } - - /** - * 路径解码 - * @param url - * @return - */ - public static String urlDecode(String url){ - String decodeUrl = null; - try { - decodeUrl = URLDecoder.decode(url, "utf-8"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - return decodeUrl; - } - - /** - * 得到static路径 - * - * @return - */ - public static String getStaticPath() { - String localStoragePath = PropertiesUtil.getProperty("qiwen-file.local-storage-path"); - if (StringUtils.isNotEmpty(localStoragePath)) { - return localStoragePath; - }else { - String projectRootAbsolutePath = getProjectRootPath(); - - int index = projectRootAbsolutePath.indexOf("file:"); - if (index != -1) { - projectRootAbsolutePath = projectRootAbsolutePath.substring(0, index); - } - - return projectRootAbsolutePath + "static" + File.separator; - } - - - } - - - public static String getParentPath(String path) { - return path.substring(0, path.lastIndexOf(FileConstant.pathSeparator)); - } - - public static void main(String[] args) { - System.out.println(RandomUtil.randomLong(999999)); -// String path = "aaa/bbb/ccc/"; -// System.out.println(getParentPath(path)); -// String fileName = path.substring(path.lastIndexOf("/")); -// System.out.println(fileName); - } -} diff --git a/file-common/src/main/java/com/qiwenshare/common/util/PropertiesUtil.java b/file-common/src/main/java/com/qiwenshare/common/util/PropertiesUtil.java deleted file mode 100644 index 997820c..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/util/PropertiesUtil.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.qiwenshare.common.util; - -import org.springframework.core.env.Environment; - -public class PropertiesUtil { - - private static Environment env = null; - - public static void setEnvironment(Environment env) { - PropertiesUtil.env = env; - } - - public static String getProperty(String key) { - return PropertiesUtil.env.getProperty(key); - } - - -} \ No newline at end of file diff --git a/file-common/src/main/java/com/qiwenshare/common/util/RedisUtil.java b/file-common/src/main/java/com/qiwenshare/common/util/RedisUtil.java deleted file mode 100644 index 725a279..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/util/RedisUtil.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.qiwenshare.common.util; - -import io.netty.util.internal.StringUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.DataAccessException; -import org.springframework.data.redis.core.RedisOperations; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.core.SessionCallback; -import org.springframework.data.redis.support.atomic.RedisAtomicLong; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.util.List; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.locks.Lock; - -@Component -@Slf4j -public class RedisUtil { - - @Resource - RedisTemplate redisTemplate; - - /** - * 将值放入缓存 - */ - public void set(String key, Object value) { - redisTemplate.opsForValue().set(key, value); - } - - /** - * 字符串:取对象 - */ - public T getObject(String key) { - Object o = redisTemplate.opsForValue().get(key); - if (o != null) { - return (T) o; - } - return null; - } - - /** - * 将值放入缓存并设置时间-秒 - */ - public void set(String key, Object value, long time) { - if (time > 0) { - redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); - } else { - redisTemplate.opsForValue().set(key, value); - } - } - - /** - * 删除key - */ - public void deleteKey(String key) { - redisTemplate.delete(key); - } - - /** - * 创建锁 - * @param key 锁的Key - * @param value 值(随便写毫无意义) - * @param releaseTime 锁过期时间 防止死锁 - * @return boolean - */ - public boolean lock(String key, int value, long releaseTime) { - // 尝试获取锁 - Boolean boo = redisTemplate.opsForValue().setIfAbsent(key, value, releaseTime, TimeUnit.SECONDS); - // 判断结果 - return boo != null && boo; - } - - - /** - * 根据key删除锁 - */ - public void deleteLock(String key) { - // 删除key即可释放锁 - deleteKey(key); - } - - /** - * @Description: 获取自增长值 - * @param key key - * @return - */ - public Long getIncr(String key) { - Long count = redisTemplate.opsForValue().increment(key, 1); - return count; - } - -// public static void main(String[] args) { -// Lock -// } - - -} \ No newline at end of file diff --git a/file-common/src/main/java/com/qiwenshare/common/util/concurrent/locks/RedisLock.java b/file-common/src/main/java/com/qiwenshare/common/util/concurrent/locks/RedisLock.java deleted file mode 100644 index d78daba..0000000 --- a/file-common/src/main/java/com/qiwenshare/common/util/concurrent/locks/RedisLock.java +++ /dev/null @@ -1,240 +0,0 @@ -package com.qiwenshare.common.util.concurrent.locks; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.data.redis.connection.RedisStringCommands; -import org.springframework.data.redis.connection.ReturnType; -import org.springframework.data.redis.core.RedisCallback; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.core.types.Expiration; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.locks.Condition; - -/** - * redis实现分布式锁 - * - */ -@Component -public class RedisLock{ - - private static final Logger log = LoggerFactory.getLogger(RedisLock.class); - - /** - * 默认轮休获取锁间隔时间, 单位:毫秒 - */ - private static final int DEFAULT_ACQUIRE_RESOLUTION_MILLIS = 100; - - private static final String UNLOCK_LUA; - - private static final long LOCK_EXPIRE_TIME = 60 * 15; //获取锁最大15分钟就会过期 - - - @Resource - RedisTemplate redisTemplate; - - static { - StringBuilder lua = new StringBuilder(); - lua.append("if redis.call(\"get\",KEYS[1]) == ARGV[1] "); - lua.append("then "); - lua.append(" return redis.call(\"del\",KEYS[1]) "); - lua.append("else "); - lua.append(" return 0 "); - lua.append("end "); - UNLOCK_LUA = lua.toString(); - } - - private final ThreadLocal> lockMap = new ThreadLocal<>(); - - /** - * 获取锁,没有获取到则一直等待 - * - * @param key redis key - */ - public void lock(final String key) { - - try { - acquireLock(key, LOCK_EXPIRE_TIME, -1); - } catch (Exception e) { - throw new RuntimeException("acquire lock exception", e); - } - } - - /** - * 释放锁 - * - * @param key redis key - */ - public void unlock(String key) { - try { - release(key); - } catch (Exception e) { - throw new RuntimeException("release lock exception", e); - } - } - - public boolean tryLock(final String key) { - try { - return acquireLock(key, LOCK_EXPIRE_TIME, -1); - } catch (Exception e) { - throw new RuntimeException("acquire lock exception", e); - } - } - - /** - * 获取锁,指定时间内没有获取到,返回false。否则 返回true - * - * @param key redis key - * @param waitTime 获取锁超时时间, -1代表永不超时, 单位 秒 - */ - public boolean tryLock(String key, long time, TimeUnit unit) { - try { - return acquireLock(key, LOCK_EXPIRE_TIME, unit.toSeconds(time)); - } catch (Exception e) { - throw new RuntimeException("acquire lock exception", e); - } - } - - /** - * @param key redis key - * @param expire 锁过期时间, 单位 秒 - * @param waitTime 获取锁超时时间, -1代表永不超时, 单位 秒 - * @return if true success else fail - * @throws InterruptedException 阻塞方法收到中断请求 - */ - private boolean acquireLock(String key, long expire, long waitTime) throws InterruptedException { - //如果之前获取到了并且没有超时,则返回获取成功 - boolean acquired = acquired(key); - if (acquired) { - return true; - } - long acquireTime = waitTime == -1 ? -1 : waitTime * 1000 + System.currentTimeMillis(); - //同一个进程,对于同一个key锁,只允许先到的去尝试获取。 - // key.intern() 如果常量池中存在当前字符串, 就会直接返回当前字符串. - // 如果常量池中没有此字符串, 会将此字符串放入常量池中后, 再返回 - synchronized (key.intern()) { - String lockId = UUID.randomUUID().toString(); - do { - long before = System.currentTimeMillis(); - boolean hasLock = tryLock(key, expire, lockId); - //获取锁成功 - if (hasLock) { - long after = System.currentTimeMillis(); - Map map = lockMap.get(); - if (map == null) { - map = new HashMap<>(2); - lockMap.set(map); - } - map.put(key, new LockVO(1, lockId, expire * 1000 + before, expire * 1000 + after)); - log.debug("acquire lock {} {} ", key, 1); - return true; - } - Thread.sleep(DEFAULT_ACQUIRE_RESOLUTION_MILLIS); - } while (acquireTime == -1 || acquireTime > System.currentTimeMillis()); - } - log.debug("acquire lock {} fail,because timeout ", key); - return false; - } - - - - /** - * 释放锁 - * - * @param key redis key - */ - private void release(String key) { - Map map = lockMap.get(); - if (map == null || map.size() == 0 || !map.containsKey(key)) { - return; - } - LockVO vo = map.get(key); - if (vo.afterExpireTime < System.currentTimeMillis()) { - log.debug("release lock {}, because timeout ", key); - map.remove(key); - return; - } - int after = --vo.count; - log.debug("release lock {} {} ", key, after); - if (after > 0) { - return; - } - map.remove(key); - RedisCallback callback = (connection) -> - connection.eval(UNLOCK_LUA.getBytes(StandardCharsets.UTF_8), ReturnType.BOOLEAN, 1, - (key).getBytes(StandardCharsets.UTF_8), vo.lockId.getBytes(StandardCharsets.UTF_8)); - redisTemplate.execute(callback); - } - - /** - * @param key 锁的key - * @param expire 锁的超时时间 秒 - * @param lockId 获取锁后,UUID生成的唯一ID - * @return if true success else fail - */ - private boolean tryLock(String key, long expire, String lockId) { - try{ - RedisCallback callback = (connection) -> - connection.set( - (key).getBytes(StandardCharsets.UTF_8), - lockId.getBytes(StandardCharsets.UTF_8), - Expiration.seconds(expire), - RedisStringCommands.SetOption.SET_IF_ABSENT); - return (Boolean) redisTemplate.execute(callback); - } catch (Exception e) { - log.error("redis lock error.", e); - } - return false; - } - - private static class LockVO { - /** - * 锁重入的次数 - */ - private int count; - - /** - * 获取锁后,UUID生成的唯一ID - */ - private String lockId; - /** - * 获取锁之前的时间戳 - */ - private long beforeExpireTime; - /** - * 获取到锁的时间戳 - */ - private long afterExpireTime; - - LockVO(int count, String lockId, long beforeExpireTime, long afterExpireTime) { - this.count = count; - this.lockId = lockId; - this.beforeExpireTime = beforeExpireTime; - this.afterExpireTime = afterExpireTime; - } - } - - private boolean acquired(String key) { - Map map = lockMap.get(); - if (map == null || map.size() == 0 || !map.containsKey(key)) { - return false; - } - - LockVO vo = map.get(key); - if (vo.beforeExpireTime < System.currentTimeMillis()) { - log.debug("lock {} maybe release, because timeout ", key); - return false; - } - int after = ++vo.count; - log.debug("acquire lock {} {} ", key, after); - return true; - } - -} - diff --git a/file-common/src/main/resources/rebel.xml b/file-common/src/main/resources/rebel.xml deleted file mode 100644 index 1184a4b..0000000 --- a/file-common/src/main/resources/rebel.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - file-common - - - - - - - diff --git a/file-web/.gitignore b/file-web/.gitignore deleted file mode 100644 index 153c933..0000000 --- a/file-web/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/file-web/pom.xml b/file-web/pom.xml deleted file mode 100644 index e5a8eba..0000000 --- a/file-web/pom.xml +++ /dev/null @@ -1,171 +0,0 @@ - - - 4.0.0 - - com.qiwenshare - file - 1.0-SNAPSHOT - - com.qiwenshare - file-web - 1.0.0-SNAPSHOT - file-web - fileos.qiwenshare.com - jar - - 1.8 - Hoxton.SR1 - true - scp - target/../../release - ${project.artifactId}-${project.version} - - - - - - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - com.baomidou - mybatis-plus-boot-starter - - - - - - - - - - - - - - - - - org.apache.shiro - shiro-core - - - com.h2database - h2 - runtime - - - - com.qiwenshare - file-common - 1.0.0-SNAPSHOT - - - junit - junit - 4.13 - test - - - org.springframework.boot - spring-boot-starter-data-elasticsearch - - - - - - - - - - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - - - - com.qiwenshare.file.FileApplication - true - lib/ - - - ./ - - - - - static/** - - - - - - maven-assembly-plugin - - - false - - ../file-common/src/main/resources/conf/assembly.xml - - - - - make-assembly - package - - single - - - - - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - package - - run - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/install.bat b/install.bat index 97c6f72..0b37b94 100644 --- a/install.bat +++ b/install.bat @@ -1,4 +1,4 @@ -set settingDir=file-common/src/main/resources/conf/settings.xml +set settingDir=src/main/resources/build/settings.xml mvn clean install -s %settingDir% pause \ No newline at end of file diff --git a/pom.xml b/pom.xml index d432196..f32c0ab 100644 --- a/pom.xml +++ b/pom.xml @@ -1,25 +1,27 @@  - 4.0.0 - org.springframework.boot - spring-boot-starter-parent - 2.4.1 + com.qiwenshare + qiwenshare + 1.0.1 com.qiwenshare - file - 1.0-SNAPSHOT - pom - + qiwen-file + 1.0.1-SNAPSHOT + qiwen-file + fileos.qiwenshare.com + jar 1.8 - - UTF-8 - UTF-8 + Hoxton.SR1 + true + scp + target/../release + ${project.artifactId}-${project.version} @@ -31,11 +33,7 @@ org.apache.commons commons-lang3 - - - - - + com.github.xiaoymin knife4j-spring-boot-starter @@ -52,7 +50,6 @@ com.alibaba fastjson - 1.2.75 @@ -73,38 +70,134 @@ org.springframework.boot spring-boot-starter-data-jpa + + org.springframework.boot + spring-boot-starter-test + test + + + + com.baomidou + mybatis-plus-boot-starter + + + + + + org.apache.shiro + shiro-core + + + com.h2database + h2 + runtime + + + + + com.qiwenshare + ufo-spring-boot-starter + + + + + junit + junit + 4.13 + test + + + org.springframework.boot + spring-boot-starter-data-elasticsearch + - - - - - - - - - + + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + + + com.qiwenshare.file.FileApplication + true + lib/ + + + ./ + + - - com.baomidou - mybatis-plus-boot-starter - 3.4.1 - - - org.apache.shiro - shiro-core - 1.4.0 - + + static/** + + + - - - - - file-common - file-web - + + maven-assembly-plugin + + + false + + src/main/resources/build/assembly.xml + + + + + make-assembly + package + + single + + + + - \ No newline at end of file + + + org.apache.maven.plugins + maven-antrun-plugin + + + package + + run + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/file-web/src/main/java/com/qiwenshare/file/FileApplication.java b/src/main/java/com/qiwenshare/file/FileApplication.java similarity index 85% rename from file-web/src/main/java/com/qiwenshare/file/FileApplication.java rename to src/main/java/com/qiwenshare/file/FileApplication.java index a8889c8..785ae35 100644 --- a/file-web/src/main/java/com/qiwenshare/file/FileApplication.java +++ b/src/main/java/com/qiwenshare/file/FileApplication.java @@ -16,13 +16,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @SpringBootApplication @MapperScan("com.qiwenshare.file.mapper") @EnableScheduling -//@EnableDiscoveryClient @EnableTransactionManagement -@ComponentScan(value = "com.qiwenshare", excludeFilters = @ComponentScan.Filter( - type = FilterType.ASSIGNABLE_TYPE, - classes = { - } -)) public class FileApplication { public static void main(String[] args) { diff --git a/file-web/src/main/java/com/qiwenshare/file/advice/CMSException.java b/src/main/java/com/qiwenshare/file/advice/CMSException.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/advice/CMSException.java rename to src/main/java/com/qiwenshare/file/advice/CMSException.java diff --git a/file-web/src/main/java/com/qiwenshare/file/advice/GlobalExceptionHandlerAdvice.java b/src/main/java/com/qiwenshare/file/advice/GlobalExceptionHandlerAdvice.java similarity index 94% rename from file-web/src/main/java/com/qiwenshare/file/advice/GlobalExceptionHandlerAdvice.java rename to src/main/java/com/qiwenshare/file/advice/GlobalExceptionHandlerAdvice.java index 93a41a2..716dff1 100644 --- a/file-web/src/main/java/com/qiwenshare/file/advice/GlobalExceptionHandlerAdvice.java +++ b/src/main/java/com/qiwenshare/file/advice/GlobalExceptionHandlerAdvice.java @@ -3,7 +3,8 @@ package com.qiwenshare.file.advice; import com.qiwenshare.common.exception.NotLoginException; import com.qiwenshare.common.result.RestResult; import com.qiwenshare.common.result.ResultCodeEnum; -import com.qiwenshare.common.exception.UploadGeneralException; + +import com.qiwenshare.ufo.exception.UploadException; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ControllerAdvice; @@ -50,10 +51,10 @@ public class GlobalExceptionHandlerAdvice { return RestResult.setResult(ResultCodeEnum.INDEX_OUT_OF_BOUNDS); } - @ExceptionHandler(UploadGeneralException.class) + @ExceptionHandler(UploadException.class) @ResponseBody @ResponseStatus(HttpStatus.REQUEST_TIMEOUT) - public RestResult error(UploadGeneralException e) { + public RestResult error(UploadException e) { e.printStackTrace(); log.error("全局异常捕获:" + e); return RestResult.setResult(ResultCodeEnum.REQUEST_TIMEOUT); diff --git a/file-web/src/main/java/com/qiwenshare/file/anno/MyLog.java b/src/main/java/com/qiwenshare/file/anno/MyLog.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/anno/MyLog.java rename to src/main/java/com/qiwenshare/file/anno/MyLog.java diff --git a/file-web/src/main/java/com/qiwenshare/file/anno/ResponseResultBody.java b/src/main/java/com/qiwenshare/file/anno/ResponseResultBody.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/anno/ResponseResultBody.java rename to src/main/java/com/qiwenshare/file/anno/ResponseResultBody.java diff --git a/file-web/src/main/java/com/qiwenshare/file/aop/WebLogAcpect.java b/src/main/java/com/qiwenshare/file/aop/WebLogAcpect.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/aop/WebLogAcpect.java rename to src/main/java/com/qiwenshare/file/aop/WebLogAcpect.java diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IElasticSearchService.java b/src/main/java/com/qiwenshare/file/api/IElasticSearchService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/api/IElasticSearchService.java rename to src/main/java/com/qiwenshare/file/api/IElasticSearchService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IFileService.java b/src/main/java/com/qiwenshare/file/api/IFileService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/api/IFileService.java rename to src/main/java/com/qiwenshare/file/api/IFileService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IFiletransferService.java b/src/main/java/com/qiwenshare/file/api/IFiletransferService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/api/IFiletransferService.java rename to src/main/java/com/qiwenshare/file/api/IFiletransferService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IOperationLogService.java b/src/main/java/com/qiwenshare/file/api/IOperationLogService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/api/IOperationLogService.java rename to src/main/java/com/qiwenshare/file/api/IOperationLogService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IRecoveryFileService.java b/src/main/java/com/qiwenshare/file/api/IRecoveryFileService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/api/IRecoveryFileService.java rename to src/main/java/com/qiwenshare/file/api/IRecoveryFileService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IShareFileService.java b/src/main/java/com/qiwenshare/file/api/IShareFileService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/api/IShareFileService.java rename to src/main/java/com/qiwenshare/file/api/IShareFileService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IShareService.java b/src/main/java/com/qiwenshare/file/api/IShareService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/api/IShareService.java rename to src/main/java/com/qiwenshare/file/api/IShareService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IUserFileService.java b/src/main/java/com/qiwenshare/file/api/IUserFileService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/api/IUserFileService.java rename to src/main/java/com/qiwenshare/file/api/IUserFileService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IUserService.java b/src/main/java/com/qiwenshare/file/api/IUserService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/api/IUserService.java rename to src/main/java/com/qiwenshare/file/api/IUserService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/component/FileDealComp.java b/src/main/java/com/qiwenshare/file/component/FileDealComp.java similarity index 88% rename from file-web/src/main/java/com/qiwenshare/file/component/FileDealComp.java rename to src/main/java/com/qiwenshare/file/component/FileDealComp.java index a378b9c..433a25d 100644 --- a/file-web/src/main/java/com/qiwenshare/file/component/FileDealComp.java +++ b/src/main/java/com/qiwenshare/file/component/FileDealComp.java @@ -1,17 +1,24 @@ package com.qiwenshare.file.component; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qiwenshare.common.constant.FileConstant; import com.qiwenshare.common.util.DateUtil; -import com.qiwenshare.common.util.PathUtil; +import com.qiwenshare.file.api.IElasticSearchService; +import com.qiwenshare.file.config.es.FileSearch; import com.qiwenshare.file.domain.TreeNode; import com.qiwenshare.file.domain.UserFile; import com.qiwenshare.file.mapper.UserFileMapper; +import com.qiwenshare.file.vo.file.FileListVo; +import com.qiwenshare.ufo.util.PathUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; import java.util.Queue; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; /** * 文件逻辑处理组件 @@ -20,6 +27,8 @@ import java.util.Queue; public class FileDealComp { @Resource UserFileMapper userFileMapper; + @Autowired + private IElasticSearchService elasticSearchService; /** * 获取重复文件名 @@ -209,4 +218,23 @@ public class FileDealComp { return isExistPath; } + + + public void uploadESByUserFileId(Long userFileId) { + + UserFile userFile = new UserFile(); + userFile.setUserFileId(userFileId); + List userfileResult = userFileMapper.userFileList(userFile, null, null); + if (userfileResult != null && userfileResult.size() > 0) { + FileSearch fileSearch = new FileSearch(); + BeanUtil.copyProperties(userfileResult.get(0), fileSearch); + elasticSearchService.save(fileSearch); + } + + } + + public void deleteESByUserFileId(Long userFileId) { + elasticSearchService.deleteById(userFileId); + + } } diff --git a/file-web/src/main/java/com/qiwenshare/file/component/UserDealComp.java b/src/main/java/com/qiwenshare/file/component/UserDealComp.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/component/UserDealComp.java rename to src/main/java/com/qiwenshare/file/component/UserDealComp.java diff --git a/file-common/src/main/java/com/qiwenshare/common/config/FdfsConfig.java b/src/main/java/com/qiwenshare/file/config/FdfsConfig.java similarity index 91% rename from file-common/src/main/java/com/qiwenshare/common/config/FdfsConfig.java rename to src/main/java/com/qiwenshare/file/config/FdfsConfig.java index 0ab7f62..754eb5f 100644 --- a/file-common/src/main/java/com/qiwenshare/common/config/FdfsConfig.java +++ b/src/main/java/com/qiwenshare/file/config/FdfsConfig.java @@ -1,4 +1,4 @@ -package com.qiwenshare.common.config; +package com.qiwenshare.file.config; import com.github.tobato.fastdfs.FdfsClientConfig; import org.springframework.context.annotation.Configuration; diff --git a/file-common/src/main/java/com/qiwenshare/common/config/RedisConfig.java b/src/main/java/com/qiwenshare/file/config/RedisConfig.java similarity index 95% rename from file-common/src/main/java/com/qiwenshare/common/config/RedisConfig.java rename to src/main/java/com/qiwenshare/file/config/RedisConfig.java index 93920e7..89a983b 100644 --- a/file-common/src/main/java/com/qiwenshare/common/config/RedisConfig.java +++ b/src/main/java/com/qiwenshare/file/config/RedisConfig.java @@ -1,4 +1,4 @@ -package com.qiwenshare.common.config; +package com.qiwenshare.file.config; import org.springframework.cache.annotation.CachingConfigurerSupport; @@ -29,8 +29,8 @@ public class RedisConfig extends CachingConfigurerSupport { } /** * 设置 redisTemplate 的序列化设置 - * @param redisConnectionFactory - * @return + * @param redisConnectionFactory redis连接工厂 + * @return redisTemplate */ @Bean public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { diff --git a/file-web/src/main/java/com/qiwenshare/file/config/WebMvcConfig.java b/src/main/java/com/qiwenshare/file/config/WebMvcConfig.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/config/WebMvcConfig.java rename to src/main/java/com/qiwenshare/file/config/WebMvcConfig.java diff --git a/file-web/src/main/java/com/qiwenshare/file/config/cors/MyCorsRegistration.java b/src/main/java/com/qiwenshare/file/config/cors/MyCorsRegistration.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/config/cors/MyCorsRegistration.java rename to src/main/java/com/qiwenshare/file/config/cors/MyCorsRegistration.java diff --git a/file-web/src/main/java/com/qiwenshare/file/config/es/FileSearch.java b/src/main/java/com/qiwenshare/file/config/es/FileSearch.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/config/es/FileSearch.java rename to src/main/java/com/qiwenshare/file/config/es/FileSearch.java diff --git a/file-web/src/main/java/com/qiwenshare/file/config/openapi/OpenAPIConfig.java b/src/main/java/com/qiwenshare/file/config/openapi/OpenAPIConfig.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/config/openapi/OpenAPIConfig.java rename to src/main/java/com/qiwenshare/file/config/openapi/OpenAPIConfig.java diff --git a/file-web/src/main/java/com/qiwenshare/file/controller/FileController.java b/src/main/java/com/qiwenshare/file/controller/FileController.java similarity index 90% rename from file-web/src/main/java/com/qiwenshare/file/controller/FileController.java rename to src/main/java/com/qiwenshare/file/controller/FileController.java index be5f603..ce65d2b 100644 --- a/file-web/src/main/java/com/qiwenshare/file/controller/FileController.java +++ b/src/main/java/com/qiwenshare/file/controller/FileController.java @@ -1,28 +1,25 @@ package com.qiwenshare.file.controller; import com.alibaba.fastjson.JSON; -import com.aliyun.oss.OSS; -import com.aliyun.oss.OSSClientBuilder; -import com.aliyun.oss.model.CopyObjectResult; -import com.aliyun.oss.model.ObjectMetadata; + import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.qiwenshare.common.exception.NotLoginException; import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.common.result.RestResult; -import com.qiwenshare.common.domain.AliyunOSS; import com.qiwenshare.common.operation.FileOperation; import com.qiwenshare.common.util.FileUtil; -import com.qiwenshare.common.util.PathUtil; import com.qiwenshare.file.anno.MyLog; import com.qiwenshare.file.api.*; -import com.qiwenshare.common.config.QiwenFileConfig; import com.qiwenshare.file.component.FileDealComp; import com.qiwenshare.file.config.es.FileSearch; import com.qiwenshare.file.domain.*; import com.qiwenshare.file.dto.*; import com.qiwenshare.file.dto.file.*; import com.qiwenshare.file.vo.file.FileListVo; +import com.qiwenshare.ufo.factory.UFOFactory; +import com.qiwenshare.ufo.operation.rename.domain.RenameFile; +import com.qiwenshare.ufo.util.PathUtil; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; @@ -57,14 +54,14 @@ public class FileController { IUserService userService; @Resource IUserFileService userFileService; + @Resource + UFOFactory ufoFactory; @Autowired private ElasticsearchRestTemplate elasticsearchRestTemplate; @Resource FileDealComp fileDealComp; - @Resource - QiwenFileConfig qiwenFileConfig; public static Executor executor = Executors.newFixedThreadPool(20); public static final String CURRENT_MODULE = "文件接口"; @@ -97,6 +94,7 @@ public class FileController { userFile.setUploadTime(DateUtil.getCurrentTime()); userFileService.save(userFile); + fileDealComp.uploadESByUserFileId(userFile.getUserFileId()); return RestResult.success(); } @@ -170,14 +168,14 @@ public class FileController { userFile.getFilePath() + userFile.getFileName() + "/", sessionUserBean.getUserId()); } else { FileBean file = fileService.getById(userFile.getFileId()); - if (file.getIsOSS() == 1 || file.getStorageType() == 1) { + if (file.getStorageType() == 1) { String fileUrl = file.getFileUrl(); String newFileUrl = fileUrl.replace(userFile.getFileName(), renameFileDto.getFileName()); - - rename(qiwenFileConfig.getAliyun().getOss(), - fileUrl.substring(1), - newFileUrl.substring(1)); + RenameFile renameFile = new RenameFile(); + renameFile.setSrcName(fileUrl.substring(1)); + renameFile.setDestName(newFileUrl.substring(1)); + ufoFactory.getRenamer(2).rename(renameFile); LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); lambdaUpdateWrapper .set(FileBean::getFileUrl, newFileUrl) @@ -199,30 +197,11 @@ public class FileController { } } - + fileDealComp.uploadESByUserFileId(renameFileDto.getUserFileId()); return RestResult.success(); } - private void rename(AliyunOSS aliyunOSS, String sourceObjectName, String destinationObjectName) { - String endpoint = aliyunOSS.getEndpoint(); - String accessKeyId = aliyunOSS.getAccessKeyId(); - String accessKeySecret = aliyunOSS.getAccessKeySecret(); - String bucketName = aliyunOSS.getBucketName(); - OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); - CopyObjectResult result = ossClient.copyObject(bucketName, sourceObjectName, bucketName, destinationObjectName); - ossClient.deleteObject(bucketName, sourceObjectName); - ObjectMetadata metadata = new ObjectMetadata(); -// if ("pdf".equals(FileUtil.getFileType(objectName))) { -// metadata.setContentDisposition("attachment"); -// } - -// ossClient.putObject(bucketName, objectName, inputStream, metadata); - - - // 关闭OSSClient。 - ossClient.shutdown(); - } @Operation(summary = "获取文件列表", description = "用来做前台列表展示", tags = {"file"}) @@ -231,19 +210,17 @@ public class FileController { public RestResult getFileList(FileListDTO fileListDto, @RequestHeader("token") String token){ UserFile userFile = new UserFile(); - if(qiwenFileConfig.isShareMode()){ - userFile.setUserId(2L); - }else { - UserBean sessionUserBean = userService.getUserBeanByToken(token); - if (sessionUserBean == null) { - throw new NotLoginException(); - } - if (userFile == null) { - return RestResult.fail(); - } - userFile.setUserId(sessionUserBean.getUserId()); + UserBean sessionUserBean = userService.getUserBeanByToken(token); + if (sessionUserBean == null) { + throw new NotLoginException(); } + if (userFile == null) { + return RestResult.fail(); + + } + userFile.setUserId(sessionUserBean.getUserId()); + List fileList = null; userFile.setFilePath(PathUtil.urlDecode(fileListDto.getFilePath())); @@ -290,6 +267,7 @@ public class FileController { //userFile.setDeleteBatchNum(uuid); userFileService.deleteUserFile(userFile.getUserFileId(),sessionUserBean.getUserId()); + fileDealComp.deleteESByUserFileId(userFile.getUserFileId()); } return RestResult.success().message("批量删除文件成功"); @@ -310,7 +288,7 @@ public class FileController { throw new NotLoginException(); } userFileService.deleteUserFile(deleteFileDto.getUserFileId(), sessionUserBean.getUserId()); - + fileDealComp.deleteESByUserFileId(deleteFileDto.getUserFileId()); return RestResult.success(); @@ -459,13 +437,7 @@ public class FileController { result.setMessage("未登录"); return result; } - if (qiwenFileConfig.isShareMode()){ - if (sessionUserBean.getUserId() > 2){ - result.setSuccess(false); - result.setMessage("没权限,请联系管理员!"); - return result; - } - } + result.setSuccess(true); return result; } @@ -480,9 +452,7 @@ public class FileController { throw new NotLoginException(); } long userId = sessionUserBean.getUserId(); - if (qiwenFileConfig.isShareMode()){ - userId = 2; - } + List fileList = new ArrayList<>(); Long beginCount = 0L; if (pageCount == null || currentPage == null) { diff --git a/file-web/src/main/java/com/qiwenshare/file/controller/FiletransferController.java b/src/main/java/com/qiwenshare/file/controller/FiletransferController.java similarity index 94% rename from file-web/src/main/java/com/qiwenshare/file/controller/FiletransferController.java rename to src/main/java/com/qiwenshare/file/controller/FiletransferController.java index 36aefef..92c330d 100644 --- a/file-web/src/main/java/com/qiwenshare/file/controller/FiletransferController.java +++ b/src/main/java/com/qiwenshare/file/controller/FiletransferController.java @@ -1,6 +1,5 @@ package com.qiwenshare.file.controller; -import com.qiwenshare.common.config.QiwenFileConfig; import com.qiwenshare.common.exception.NotLoginException; import com.qiwenshare.common.result.RestResult; import com.qiwenshare.common.util.DateUtil; @@ -11,6 +10,7 @@ import com.qiwenshare.file.api.IFileService; import com.qiwenshare.file.api.IFiletransferService; import com.qiwenshare.file.api.IUserFileService; import com.qiwenshare.file.api.IUserService; +import com.qiwenshare.file.component.FileDealComp; import com.qiwenshare.file.domain.FileBean; import com.qiwenshare.file.domain.StorageBean; import com.qiwenshare.file.domain.UserBean; @@ -19,14 +19,10 @@ import com.qiwenshare.file.dto.DownloadFileDTO; import com.qiwenshare.file.dto.UploadFileDTO; import com.qiwenshare.file.dto.file.PreviewDTO; import com.qiwenshare.file.vo.file.UploadFileVo; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -49,14 +45,14 @@ public class FiletransferController { @Resource FileController fileController; - @Autowired - QiwenFileConfig qiwenFileConfig; @Resource IFileService fileService; @Resource IUserService userService; @Resource IUserFileService userFileService; + @Resource + FileDealComp fileDealComp; public static final String CURRENT_MODULE = "文件传输接口"; @Operation(summary = "极速上传", description = "校验文件MD5判断文件是否存在,如果存在直接上传成功并返回skipUpload=true,如果不存在返回skipUpload=false需要再次调用该接口的POST方法", tags = {"filetransfer"}) @@ -95,7 +91,7 @@ public class FiletransferController { userFileService.save(userFile); fileService.increaseFilePointCount(file.getFileId()); uploadFileVo.setSkipUpload(true); - + fileDealComp.uploadESByUserFileId(userFile.getUserFileId()); } else { uploadFileVo.setSkipUpload(false); @@ -121,6 +117,7 @@ public class FiletransferController { } filetransferService.uploadFile(request, uploadFileDto, sessionUserBean.getUserId()); + UploadFileVo uploadFileVo = new UploadFileVo(); return RestResult.success().data(uploadFileVo); @@ -180,7 +177,8 @@ public class FiletransferController { filetransferService.downloadFile(httpServletResponse, downloadFileDTO); }catch (Exception e){ //org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。 - log.error("该异常忽略不做处理"); + e.printStackTrace(); + log.error("该异常忽略不做处理:" + e); } } @@ -195,11 +193,9 @@ public class FiletransferController { throw new NotLoginException(); } StorageBean storageBean = new StorageBean(); - if (qiwenFileConfig.isShareMode()){ - storageBean.setUserId(2L); - }else{ - storageBean.setUserId(sessionUserBean.getUserId()); - } + + storageBean.setUserId(sessionUserBean.getUserId()); + Long storageSize = filetransferService.selectStorageSizeByUserId(sessionUserBean.getUserId()); StorageBean storage = new StorageBean(); diff --git a/file-web/src/main/java/com/qiwenshare/file/controller/RecoveryFileController.java b/src/main/java/com/qiwenshare/file/controller/RecoveryFileController.java similarity index 99% rename from file-web/src/main/java/com/qiwenshare/file/controller/RecoveryFileController.java rename to src/main/java/com/qiwenshare/file/controller/RecoveryFileController.java index dc958a4..3f10741 100644 --- a/file-web/src/main/java/com/qiwenshare/file/controller/RecoveryFileController.java +++ b/src/main/java/com/qiwenshare/file/controller/RecoveryFileController.java @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.qiwenshare.common.exception.NotLoginException; import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.common.result.RestResult; -import com.qiwenshare.common.util.PathUtil; import com.qiwenshare.file.anno.MyLog; import com.qiwenshare.file.api.IRecoveryFileService; import com.qiwenshare.file.api.IUserFileService; diff --git a/file-web/src/main/java/com/qiwenshare/file/controller/ShareController.java b/src/main/java/com/qiwenshare/file/controller/ShareController.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/controller/ShareController.java rename to src/main/java/com/qiwenshare/file/controller/ShareController.java diff --git a/file-web/src/main/java/com/qiwenshare/file/controller/TaskController.java b/src/main/java/com/qiwenshare/file/controller/TaskController.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/controller/TaskController.java rename to src/main/java/com/qiwenshare/file/controller/TaskController.java diff --git a/file-web/src/main/java/com/qiwenshare/file/controller/UserController.java b/src/main/java/com/qiwenshare/file/controller/UserController.java similarity index 91% rename from file-web/src/main/java/com/qiwenshare/file/controller/UserController.java rename to src/main/java/com/qiwenshare/file/controller/UserController.java index 8c45530..44d7186 100644 --- a/file-web/src/main/java/com/qiwenshare/file/controller/UserController.java +++ b/src/main/java/com/qiwenshare/file/controller/UserController.java @@ -3,11 +3,9 @@ package com.qiwenshare.file.controller; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; import com.qiwenshare.common.result.RestResult; -import com.qiwenshare.common.domain.AliyunOSS; import com.qiwenshare.common.util.JjwtUtil; import com.qiwenshare.file.anno.MyLog; import com.qiwenshare.file.api.IUserService; -import com.qiwenshare.common.config.QiwenFileConfig; import com.qiwenshare.file.domain.UserBean; import com.qiwenshare.file.dto.user.RegisterDTO; import com.qiwenshare.file.vo.user.UserLoginVo; @@ -17,7 +15,6 @@ import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.crypto.hash.SimpleHash; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -34,8 +31,6 @@ public class UserController { @Resource IUserService userService; - @Autowired - QiwenFileConfig qiwenFileConfig; public static Map verificationCodeMap = new HashMap<>(); @@ -43,7 +38,6 @@ public class UserController { public static final String CURRENT_MODULE = "用户管理"; - @Operation(summary = "用户注册", description = "注册账号", tags = {"user"}) @PostMapping(value = "/register") @MyLog(operation = "用户注册", module = CURRENT_MODULE) @@ -101,9 +95,6 @@ public class UserController { UserBean sessionUserBean = userService.getUserBeanByToken(token); if (sessionUserBean != null) { - AliyunOSS oss = qiwenFileConfig.getAliyun().getOss(); - String domain = oss.getDomain(); - sessionUserBean.setViewDomain(domain); return RestResult.success().data(sessionUserBean); } else { diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/FileBean.java b/src/main/java/com/qiwenshare/file/domain/FileBean.java similarity index 91% rename from file-web/src/main/java/com/qiwenshare/file/domain/FileBean.java rename to src/main/java/com/qiwenshare/file/domain/FileBean.java index d4bb8a2..b800ef4 100644 --- a/file-web/src/main/java/com/qiwenshare/file/domain/FileBean.java +++ b/src/main/java/com/qiwenshare/file/domain/FileBean.java @@ -33,9 +33,9 @@ public class FileBean { @Column(columnDefinition="bigint(10)") private Long fileSize; - @Column(columnDefinition="int(1)") - @Deprecated - private Integer isOSS; +// @Column(columnDefinition="int(1)") +// @Deprecated +// private Integer isOSS; @Column(columnDefinition="int(1)") private Integer storageType; diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/OperationLogBean.java b/src/main/java/com/qiwenshare/file/domain/OperationLogBean.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/domain/OperationLogBean.java rename to src/main/java/com/qiwenshare/file/domain/OperationLogBean.java diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/Permission.java b/src/main/java/com/qiwenshare/file/domain/Permission.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/domain/Permission.java rename to src/main/java/com/qiwenshare/file/domain/Permission.java diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/RecoveryFile.java b/src/main/java/com/qiwenshare/file/domain/RecoveryFile.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/domain/RecoveryFile.java rename to src/main/java/com/qiwenshare/file/domain/RecoveryFile.java diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/Role.java b/src/main/java/com/qiwenshare/file/domain/Role.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/domain/Role.java rename to src/main/java/com/qiwenshare/file/domain/Role.java diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/Share.java b/src/main/java/com/qiwenshare/file/domain/Share.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/domain/Share.java rename to src/main/java/com/qiwenshare/file/domain/Share.java diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/ShareFile.java b/src/main/java/com/qiwenshare/file/domain/ShareFile.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/domain/ShareFile.java rename to src/main/java/com/qiwenshare/file/domain/ShareFile.java diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/StorageBean.java b/src/main/java/com/qiwenshare/file/domain/StorageBean.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/domain/StorageBean.java rename to src/main/java/com/qiwenshare/file/domain/StorageBean.java diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/TreeNode.java b/src/main/java/com/qiwenshare/file/domain/TreeNode.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/domain/TreeNode.java rename to src/main/java/com/qiwenshare/file/domain/TreeNode.java diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/UserBean.java b/src/main/java/com/qiwenshare/file/domain/UserBean.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/domain/UserBean.java rename to src/main/java/com/qiwenshare/file/domain/UserBean.java diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/UserFile.java b/src/main/java/com/qiwenshare/file/domain/UserFile.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/domain/UserFile.java rename to src/main/java/com/qiwenshare/file/domain/UserFile.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/BatchDeleteRecoveryFileDTO.java b/src/main/java/com/qiwenshare/file/dto/BatchDeleteRecoveryFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/BatchDeleteRecoveryFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/BatchDeleteRecoveryFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/BatchMoveFileDTO.java b/src/main/java/com/qiwenshare/file/dto/BatchMoveFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/BatchMoveFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/BatchMoveFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/DeleteRecoveryFileDTO.java b/src/main/java/com/qiwenshare/file/dto/DeleteRecoveryFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/DeleteRecoveryFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/DeleteRecoveryFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/DownloadFileDTO.java b/src/main/java/com/qiwenshare/file/dto/DownloadFileDTO.java similarity index 89% rename from file-web/src/main/java/com/qiwenshare/file/dto/DownloadFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/DownloadFileDTO.java index 83c7ae9..256c21b 100644 --- a/file-web/src/main/java/com/qiwenshare/file/dto/DownloadFileDTO.java +++ b/src/main/java/com/qiwenshare/file/dto/DownloadFileDTO.java @@ -7,4 +7,5 @@ import lombok.Data; @Schema(name = "下载文件DTO",required = true) public class DownloadFileDTO { private Long userFileId; + private boolean isMin; } diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/FileListDTO.java b/src/main/java/com/qiwenshare/file/dto/FileListDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/FileListDTO.java rename to src/main/java/com/qiwenshare/file/dto/FileListDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/MoveFileDTO.java b/src/main/java/com/qiwenshare/file/dto/MoveFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/MoveFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/MoveFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/RecoveryFileListDTO.java b/src/main/java/com/qiwenshare/file/dto/RecoveryFileListDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/RecoveryFileListDTO.java rename to src/main/java/com/qiwenshare/file/dto/RecoveryFileListDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/UploadFileDTO.java b/src/main/java/com/qiwenshare/file/dto/UploadFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/UploadFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/UploadFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/file/BatchDeleteFileDTO.java b/src/main/java/com/qiwenshare/file/dto/file/BatchDeleteFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/file/BatchDeleteFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/file/BatchDeleteFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/file/CreateFileDTO.java b/src/main/java/com/qiwenshare/file/dto/file/CreateFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/file/CreateFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/file/CreateFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/file/DeleteFileDTO.java b/src/main/java/com/qiwenshare/file/dto/file/DeleteFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/file/DeleteFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/file/DeleteFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/file/PreviewDTO.java b/src/main/java/com/qiwenshare/file/dto/file/PreviewDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/file/PreviewDTO.java rename to src/main/java/com/qiwenshare/file/dto/file/PreviewDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/file/RenameFileDTO.java b/src/main/java/com/qiwenshare/file/dto/file/RenameFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/file/RenameFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/file/RenameFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/file/SearchFileDTO.java b/src/main/java/com/qiwenshare/file/dto/file/SearchFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/file/SearchFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/file/SearchFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/file/UnzipFileDTO.java b/src/main/java/com/qiwenshare/file/dto/file/UnzipFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/file/UnzipFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/file/UnzipFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/recoveryfile/BatchDeleteRecoveryFileDTO.java b/src/main/java/com/qiwenshare/file/dto/recoveryfile/BatchDeleteRecoveryFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/recoveryfile/BatchDeleteRecoveryFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/recoveryfile/BatchDeleteRecoveryFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/recoveryfile/RestoreFileDTO.java b/src/main/java/com/qiwenshare/file/dto/recoveryfile/RestoreFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/recoveryfile/RestoreFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/recoveryfile/RestoreFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/sharefile/CheckEndTimeDTO.java b/src/main/java/com/qiwenshare/file/dto/sharefile/CheckEndTimeDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/sharefile/CheckEndTimeDTO.java rename to src/main/java/com/qiwenshare/file/dto/sharefile/CheckEndTimeDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/sharefile/CheckExtractionCodeDTO.java b/src/main/java/com/qiwenshare/file/dto/sharefile/CheckExtractionCodeDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/sharefile/CheckExtractionCodeDTO.java rename to src/main/java/com/qiwenshare/file/dto/sharefile/CheckExtractionCodeDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/sharefile/SaveShareFileDTO.java b/src/main/java/com/qiwenshare/file/dto/sharefile/SaveShareFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/sharefile/SaveShareFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/sharefile/SaveShareFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/sharefile/ShareFileDTO.java b/src/main/java/com/qiwenshare/file/dto/sharefile/ShareFileDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/sharefile/ShareFileDTO.java rename to src/main/java/com/qiwenshare/file/dto/sharefile/ShareFileDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/sharefile/ShareFileListDTO.java b/src/main/java/com/qiwenshare/file/dto/sharefile/ShareFileListDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/sharefile/ShareFileListDTO.java rename to src/main/java/com/qiwenshare/file/dto/sharefile/ShareFileListDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/sharefile/ShareListDTO.java b/src/main/java/com/qiwenshare/file/dto/sharefile/ShareListDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/sharefile/ShareListDTO.java rename to src/main/java/com/qiwenshare/file/dto/sharefile/ShareListDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/sharefile/ShareTypeDTO.java b/src/main/java/com/qiwenshare/file/dto/sharefile/ShareTypeDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/sharefile/ShareTypeDTO.java rename to src/main/java/com/qiwenshare/file/dto/sharefile/ShareTypeDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/user/RegisterDTO.java b/src/main/java/com/qiwenshare/file/dto/user/RegisterDTO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/dto/user/RegisterDTO.java rename to src/main/java/com/qiwenshare/file/dto/user/RegisterDTO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/interceptor/AuthenticationInterceptor.java b/src/main/java/com/qiwenshare/file/interceptor/AuthenticationInterceptor.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/interceptor/AuthenticationInterceptor.java rename to src/main/java/com/qiwenshare/file/interceptor/AuthenticationInterceptor.java diff --git a/file-web/src/main/java/com/qiwenshare/file/mapper/FileMapper.java b/src/main/java/com/qiwenshare/file/mapper/FileMapper.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/mapper/FileMapper.java rename to src/main/java/com/qiwenshare/file/mapper/FileMapper.java diff --git a/file-web/src/main/java/com/qiwenshare/file/mapper/OperationLogMapper.java b/src/main/java/com/qiwenshare/file/mapper/OperationLogMapper.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/mapper/OperationLogMapper.java rename to src/main/java/com/qiwenshare/file/mapper/OperationLogMapper.java diff --git a/file-web/src/main/java/com/qiwenshare/file/mapper/RecoveryFileMapper.java b/src/main/java/com/qiwenshare/file/mapper/RecoveryFileMapper.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/mapper/RecoveryFileMapper.java rename to src/main/java/com/qiwenshare/file/mapper/RecoveryFileMapper.java diff --git a/file-web/src/main/java/com/qiwenshare/file/mapper/ShareFileMapper.java b/src/main/java/com/qiwenshare/file/mapper/ShareFileMapper.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/mapper/ShareFileMapper.java rename to src/main/java/com/qiwenshare/file/mapper/ShareFileMapper.java diff --git a/file-web/src/main/java/com/qiwenshare/file/mapper/ShareMapper.java b/src/main/java/com/qiwenshare/file/mapper/ShareMapper.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/mapper/ShareMapper.java rename to src/main/java/com/qiwenshare/file/mapper/ShareMapper.java diff --git a/file-web/src/main/java/com/qiwenshare/file/mapper/StorageMapper.java b/src/main/java/com/qiwenshare/file/mapper/StorageMapper.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/mapper/StorageMapper.java rename to src/main/java/com/qiwenshare/file/mapper/StorageMapper.java diff --git a/file-web/src/main/java/com/qiwenshare/file/mapper/UserFileMapper.java b/src/main/java/com/qiwenshare/file/mapper/UserFileMapper.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/mapper/UserFileMapper.java rename to src/main/java/com/qiwenshare/file/mapper/UserFileMapper.java diff --git a/file-web/src/main/java/com/qiwenshare/file/mapper/UserMapper.java b/src/main/java/com/qiwenshare/file/mapper/UserMapper.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/mapper/UserMapper.java rename to src/main/java/com/qiwenshare/file/mapper/UserMapper.java diff --git a/file-web/src/main/java/com/qiwenshare/file/service/FileService.java b/src/main/java/com/qiwenshare/file/service/FileService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/service/FileService.java rename to src/main/java/com/qiwenshare/file/service/FileService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/service/FiletransferService.java b/src/main/java/com/qiwenshare/file/service/FiletransferService.java similarity index 73% rename from file-web/src/main/java/com/qiwenshare/file/service/FiletransferService.java rename to src/main/java/com/qiwenshare/file/service/FiletransferService.java index 140102f..5ced324 100644 --- a/file-web/src/main/java/com/qiwenshare/file/service/FiletransferService.java +++ b/src/main/java/com/qiwenshare/file/service/FiletransferService.java @@ -14,20 +14,13 @@ import javax.servlet.http.HttpServletResponse; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.qiwenshare.common.exception.UploadGeneralException; -import com.qiwenshare.common.operation.upload.domain.UploadFile; -import com.qiwenshare.common.util.DateUtil; -import com.qiwenshare.common.operation.delete.domain.DeleteFile; -import com.qiwenshare.common.operation.download.domain.DownloadFile; -import com.qiwenshare.common.operation.delete.Deleter; -import com.qiwenshare.common.operation.download.Downloader; -import com.qiwenshare.common.factory.FileOperationFactory; -import com.qiwenshare.common.operation.upload.Uploader; -import com.qiwenshare.common.util.PathUtil; +import com.qiwenshare.common.util.DateUtil; + +import com.qiwenshare.common.util.FileUtil; import com.qiwenshare.file.api.IFiletransferService; -import com.qiwenshare.common.config.QiwenFileConfig; +import com.qiwenshare.file.component.FileDealComp; import com.qiwenshare.file.domain.UserFile; import com.qiwenshare.file.dto.DownloadFileDTO; import com.qiwenshare.file.dto.UploadFileDTO; @@ -36,6 +29,16 @@ import com.qiwenshare.file.domain.FileBean; import com.qiwenshare.file.domain.StorageBean; import com.qiwenshare.file.mapper.StorageMapper; import com.qiwenshare.file.mapper.UserFileMapper; +import com.qiwenshare.ufo.exception.UploadException; +import com.qiwenshare.ufo.factory.StorageTypeEnum; +import com.qiwenshare.ufo.factory.UFOFactory; +import com.qiwenshare.ufo.operation.delete.Deleter; +import com.qiwenshare.ufo.operation.delete.domain.DeleteFile; +import com.qiwenshare.ufo.operation.download.Downloader; +import com.qiwenshare.ufo.operation.download.domain.DownloadFile; +import com.qiwenshare.ufo.operation.upload.Uploader; +import com.qiwenshare.ufo.operation.upload.domain.UploadFile; +import com.qiwenshare.ufo.util.PathUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -49,23 +52,19 @@ public class FiletransferService implements IFiletransferService { StorageMapper storageMapper; @Resource FileMapper fileMapper; - @Resource - QiwenFileConfig qiwenFileConfig; @Resource UserFileMapper userFileMapper; @Resource - FileOperationFactory fastDFSOperationFactory; + UFOFactory ufoFactory; @Resource - FileOperationFactory aliyunOSSOperationFactory; - @Resource - FileOperationFactory localStorageOperationFactory; + FileDealComp fileDealComp; @Override public void uploadFile(HttpServletRequest request, UploadFileDTO UploadFileDto, Long userId) { - Uploader uploader = null; + UploadFile uploadFile = new UploadFile(); uploadFile.setChunkNumber(UploadFileDto.getChunkNumber()); uploadFile.setChunkSize(UploadFileDto.getChunkSize()); @@ -73,19 +72,11 @@ public class FiletransferService implements IFiletransferService { uploadFile.setIdentifier(UploadFileDto.getIdentifier()); uploadFile.setTotalSize(UploadFileDto.getTotalSize()); uploadFile.setCurrentChunkSize(UploadFileDto.getCurrentChunkSize()); - String storageType = qiwenFileConfig.getStorageType(); - synchronized (FiletransferService.class) { - if ("0".equals(storageType)) { - uploader = localStorageOperationFactory.getUploader(); - } else if ("1".equals(storageType)) { - uploader = aliyunOSSOperationFactory.getUploader(); - } else if ("2".equals(storageType)) { - uploader = fastDFSOperationFactory.getUploader(); - } - } + + Uploader uploader = ufoFactory.getUploader(); if (uploader == null) { - log.error("上传失败,请检查storageType是否配置正确,当前storageType为:" + storageType); - throw new UploadGeneralException("上传失败"); + log.error("上传失败,请检查storageType是否配置正确,当前storageType为:"); + throw new UploadException("上传失败"); } List uploadFileList = uploader.upload(request, uploadFile); @@ -98,7 +89,7 @@ public class FiletransferService implements IFiletransferService { fileBean.setFileUrl(uploadFile.getUrl()); fileBean.setFileSize(uploadFile.getFileSize()); //fileBean.setUploadTime(DateUtil.getCurrentTime()); - fileBean.setIsOSS(uploadFile.getIsOSS()); +// fileBean.setIsOSS(uploadFile.getIsOSS()); fileBean.setStorageType(uploadFile.getStorageType()); fileBean.setPointCount(1); fileMapper.insert(fileBean); @@ -112,6 +103,7 @@ public class FiletransferService implements IFiletransferService { userFile.setIsDir(0); userFile.setUploadTime(DateUtil.getCurrentTime()); userFileMapper.insert(userFile); + fileDealComp.uploadESByUserFileId(userFile.getUserFileId()); synchronized (FiletransferService.class) { @@ -138,22 +130,19 @@ public class FiletransferService implements IFiletransferService { if (userFile.getIsDir() == 0) { FileBean fileBean = fileMapper.selectById(userFile.getFileId()); - Downloader downloader = null; - if (fileBean.getIsOSS() != null && fileBean.getIsOSS() == 1) { - downloader = aliyunOSSOperationFactory.getDownloader(); - } else if (fileBean.getStorageType() == 0) { - downloader = localStorageOperationFactory.getDownloader(); - } else if (fileBean.getStorageType() == 1) { - downloader = aliyunOSSOperationFactory.getDownloader(); - } else if (fileBean.getStorageType() == 2) { - downloader = fastDFSOperationFactory.getDownloader(); - } + Downloader downloader = ufoFactory.getDownloader(fileBean.getStorageType()); if (downloader == null) { - log.error("下载失败,文件存储类型不支持下载,storageType:{}, isOSS:{}", fileBean.getStorageType(), fileBean.getIsOSS()); - throw new UploadGeneralException("下载失败"); + log.error("下载失败,文件存储类型不支持下载,storageType:{}", fileBean.getStorageType()); + throw new UploadException("下载失败"); } DownloadFile downloadFile = new DownloadFile(); - downloadFile.setFileUrl(fileBean.getFileUrl()); + if (downloadFileDTO.isMin()) { + downloadFile.setFileUrl(fileBean.getFileUrl().replace("." + userFile.getExtendName(), "_min." + userFile.getExtendName())); + } else { + downloadFile.setFileUrl(fileBean.getFileUrl()); + } + downloadFile.setFileSize(fileBean.getFileSize()); + downloader.download(httpServletResponse, downloadFile); } else { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -184,23 +173,14 @@ public class FiletransferService implements IFiletransferService { try { for (UserFile userFile1 : userFileList) { FileBean fileBean = fileMapper.selectById(userFile1.getFileId()); - Downloader downloader = null; - if (fileBean.getIsOSS() != null && fileBean.getIsOSS() == 1) { - downloader = aliyunOSSOperationFactory.getDownloader(); - } else if (fileBean.getStorageType() == 0) { - downloader = localStorageOperationFactory.getDownloader(); - } else if (fileBean.getStorageType() == 1) { - downloader = aliyunOSSOperationFactory.getDownloader(); - } else if (fileBean.getStorageType() == 2) { - downloader = fastDFSOperationFactory.getDownloader(); - } - + Downloader downloader = ufoFactory.getDownloader(fileBean.getStorageType()); if (downloader == null) { - log.error("下载失败,文件存储类型不支持下载,storageType:{}, isOSS:{}", fileBean.getStorageType(), fileBean.getIsOSS()); - throw new UploadGeneralException("下载失败"); + log.error("下载失败,文件存储类型不支持下载,storageType:{}, isOSS:{}", fileBean.getStorageType()); + throw new UploadException("下载失败"); } DownloadFile downloadFile = new DownloadFile(); downloadFile.setFileUrl(fileBean.getFileUrl()); + downloadFile.setFileSize(fileBean.getFileSize()); InputStream inputStream = downloader.getInputStream(downloadFile); BufferedInputStream bis = new BufferedInputStream(inputStream); try { @@ -237,8 +217,8 @@ public class FiletransferService implements IFiletransferService { e.printStackTrace(); } } - - Downloader downloader = localStorageOperationFactory.getDownloader(); + Downloader downloader = ufoFactory.getDownloader(StorageTypeEnum.LOCAL.getStorageType()); +// Downloader downloader = localStorageOperationFactory.getDownloader(); DownloadFile downloadFile = new DownloadFile(); downloadFile.setFileUrl("temp" + File.separator+userFile.getFileName() + ".zip"); downloader.download(httpServletResponse, downloadFile); @@ -248,15 +228,8 @@ public class FiletransferService implements IFiletransferService { @Override public void deleteFile(FileBean fileBean) { Deleter deleter = null; - if (fileBean.getIsOSS() != null && fileBean.getIsOSS() == 1) { - deleter = aliyunOSSOperationFactory.getDeleter(); - } else if (fileBean.getStorageType() == 0) { - deleter = localStorageOperationFactory.getDeleter(); - } else if (fileBean.getStorageType() == 1) { - deleter = aliyunOSSOperationFactory.getDeleter(); - } else if (fileBean.getStorageType() == 2) { - deleter = fastDFSOperationFactory.getDeleter(); - } + + deleter = ufoFactory.getDeleter(fileBean.getStorageType()); DeleteFile deleteFile = new DeleteFile(); deleteFile.setFileUrl(fileBean.getFileUrl()); deleteFile.setTimeStampName(fileBean.getTimeStampName()); diff --git a/file-web/src/main/java/com/qiwenshare/file/service/OperationLogService.java b/src/main/java/com/qiwenshare/file/service/OperationLogService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/service/OperationLogService.java rename to src/main/java/com/qiwenshare/file/service/OperationLogService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/service/RecoveryFileService.java b/src/main/java/com/qiwenshare/file/service/RecoveryFileService.java similarity index 96% rename from file-web/src/main/java/com/qiwenshare/file/service/RecoveryFileService.java rename to src/main/java/com/qiwenshare/file/service/RecoveryFileService.java index 4a45fa8..d2c5650 100644 --- a/file-web/src/main/java/com/qiwenshare/file/service/RecoveryFileService.java +++ b/src/main/java/com/qiwenshare/file/service/RecoveryFileService.java @@ -1,12 +1,8 @@ package com.qiwenshare.file.service; -import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.qiwenshare.common.constant.FileConstant; -import com.qiwenshare.common.util.DateUtil; -import com.qiwenshare.common.util.PathUtil; import com.qiwenshare.file.api.IRecoveryFileService; import com.qiwenshare.file.component.FileDealComp; import com.qiwenshare.file.domain.FileBean; diff --git a/file-web/src/main/java/com/qiwenshare/file/service/ShareFileService.java b/src/main/java/com/qiwenshare/file/service/ShareFileService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/service/ShareFileService.java rename to src/main/java/com/qiwenshare/file/service/ShareFileService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/service/ShareService.java b/src/main/java/com/qiwenshare/file/service/ShareService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/service/ShareService.java rename to src/main/java/com/qiwenshare/file/service/ShareService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java b/src/main/java/com/qiwenshare/file/service/UserFileService.java similarity index 90% rename from file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java rename to src/main/java/com/qiwenshare/file/service/UserFileService.java index 2bf6a30..551e338 100644 --- a/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java +++ b/src/main/java/com/qiwenshare/file/service/UserFileService.java @@ -7,8 +7,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qiwenshare.common.constant.FileConstant; import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.file.api.IUserFileService; -import com.qiwenshare.common.config.QiwenFileConfig; -import com.qiwenshare.file.domain.FileBean; import com.qiwenshare.file.domain.RecoveryFile; import com.qiwenshare.file.domain.UserFile; import com.qiwenshare.file.mapper.FileMapper; @@ -191,7 +189,7 @@ public class UserFileService extends ServiceImpl impl userFileMapper.update(null, userFileLambdaUpdateWrapper); String filePath = userFile.getFilePath() + userFile.getFileName() + "/"; - updateFileDeleteStateByFilePath(filePath, userFile.getDeleteBatchNum(), sessionUserId); + updateFileDeleteStateByFilePath(filePath, uuid, sessionUserId); }else{ UserFile userFileTemp = userFileMapper.selectById(userFileId); @@ -213,26 +211,21 @@ public class UserFileService extends ServiceImpl impl } private void updateFileDeleteStateByFilePath(String filePath, String deleteBatchNum, Long userId) { - new Thread(()->{ + executor.execute(() -> { List fileList = selectFileListLikeRightFilePath(filePath, userId); for (int i = 0; i < fileList.size(); i++){ UserFile userFileTemp = fileList.get(i); - executor.execute(new Runnable() { - @Override - public void run() { - //标记删除标志 - LambdaUpdateWrapper userFileLambdaUpdateWrapper1 = new LambdaUpdateWrapper<>(); - userFileLambdaUpdateWrapper1.set(UserFile::getDeleteFlag, RandomUtil.randomInt(FileConstant.deleteFileRandomSize)) - .set(UserFile::getDeleteTime, DateUtil.getCurrentTime()) - .set(UserFile::getDeleteBatchNum, deleteBatchNum) - .eq(UserFile::getUserFileId, userFileTemp.getUserFileId()) - .eq(UserFile::getDeleteFlag, 0); - userFileMapper.update(null, userFileLambdaUpdateWrapper1); - } - }); + //标记删除标志 + LambdaUpdateWrapper userFileLambdaUpdateWrapper1 = new LambdaUpdateWrapper<>(); + userFileLambdaUpdateWrapper1.set(UserFile::getDeleteFlag, RandomUtil.randomInt(FileConstant.deleteFileRandomSize)) + .set(UserFile::getDeleteTime, DateUtil.getCurrentTime()) + .set(UserFile::getDeleteBatchNum, deleteBatchNum) + .eq(UserFile::getUserFileId, userFileTemp.getUserFileId()) + .eq(UserFile::getDeleteFlag, 0); + userFileMapper.update(null, userFileLambdaUpdateWrapper1); } - }).start(); + }); } diff --git a/file-web/src/main/java/com/qiwenshare/file/service/UserService.java b/src/main/java/com/qiwenshare/file/service/UserService.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/service/UserService.java rename to src/main/java/com/qiwenshare/file/service/UserService.java diff --git a/file-web/src/main/java/com/qiwenshare/file/util/OperationLogUtil.java b/src/main/java/com/qiwenshare/file/util/OperationLogUtil.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/util/OperationLogUtil.java rename to src/main/java/com/qiwenshare/file/util/OperationLogUtil.java diff --git a/file-web/src/main/java/com/qiwenshare/file/vo/file/FileListVo.java b/src/main/java/com/qiwenshare/file/vo/file/FileListVo.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/vo/file/FileListVo.java rename to src/main/java/com/qiwenshare/file/vo/file/FileListVo.java diff --git a/file-web/src/main/java/com/qiwenshare/file/vo/file/RecoveryFileListVo.java b/src/main/java/com/qiwenshare/file/vo/file/RecoveryFileListVo.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/vo/file/RecoveryFileListVo.java rename to src/main/java/com/qiwenshare/file/vo/file/RecoveryFileListVo.java diff --git a/file-web/src/main/java/com/qiwenshare/file/vo/file/UploadFileVo.java b/src/main/java/com/qiwenshare/file/vo/file/UploadFileVo.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/vo/file/UploadFileVo.java rename to src/main/java/com/qiwenshare/file/vo/file/UploadFileVo.java diff --git a/file-web/src/main/java/com/qiwenshare/file/vo/share/ShareFileListVO.java b/src/main/java/com/qiwenshare/file/vo/share/ShareFileListVO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/vo/share/ShareFileListVO.java rename to src/main/java/com/qiwenshare/file/vo/share/ShareFileListVO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/vo/share/ShareFileVO.java b/src/main/java/com/qiwenshare/file/vo/share/ShareFileVO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/vo/share/ShareFileVO.java rename to src/main/java/com/qiwenshare/file/vo/share/ShareFileVO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/vo/share/ShareListVO.java b/src/main/java/com/qiwenshare/file/vo/share/ShareListVO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/vo/share/ShareListVO.java rename to src/main/java/com/qiwenshare/file/vo/share/ShareListVO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/vo/share/ShareTypeVO.java b/src/main/java/com/qiwenshare/file/vo/share/ShareTypeVO.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/vo/share/ShareTypeVO.java rename to src/main/java/com/qiwenshare/file/vo/share/ShareTypeVO.java diff --git a/file-web/src/main/java/com/qiwenshare/file/vo/user/UserLoginVo.java b/src/main/java/com/qiwenshare/file/vo/user/UserLoginVo.java similarity index 100% rename from file-web/src/main/java/com/qiwenshare/file/vo/user/UserLoginVo.java rename to src/main/java/com/qiwenshare/file/vo/user/UserLoginVo.java diff --git a/file-web/src/main/resources/banner.txt b/src/main/resources/banner.txt similarity index 100% rename from file-web/src/main/resources/banner.txt rename to src/main/resources/banner.txt diff --git a/file-common/src/main/resources/conf/assembly.xml b/src/main/resources/build/assembly.xml similarity index 100% rename from file-common/src/main/resources/conf/assembly.xml rename to src/main/resources/build/assembly.xml diff --git a/file-common/src/main/resources/conf/settings.xml b/src/main/resources/build/settings.xml similarity index 98% rename from file-common/src/main/resources/conf/settings.xml rename to src/main/resources/build/settings.xml index 626c0ea..54f1fc4 100644 --- a/file-common/src/main/resources/conf/settings.xml +++ b/src/main/resources/build/settings.xml @@ -157,12 +157,12 @@ under the License. http://my.repository.com/repo/path --> - -  alimaven -  aliyun maven -  http://maven.aliyun.com/nexus/content/groups/public/ -  central - + + alimaven + central + aliyun maven. + http://maven.aliyun.com/nexus/content/groups/public/ +