Package com.bytedesk.core.upload
Class UploadRestService
java.lang.Object
com.bytedesk.core.base.BaseRestService<UploadEntity,UploadRequest,UploadResponse>
com.bytedesk.core.upload.UploadRestService
@Service
public class UploadRestService
extends BaseRestService<UploadEntity,UploadRequest,UploadResponse>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AuthServiceprivate final BytedeskPropertiesprivate final org.modelmapper.ModelMapperprivate final UidUtilsprivate final Pathprivate UploadMinioServiceprivate final UploadRepositoryprivate final UploadSecurityConfigprivate final UploadSecurityLoggerprivate final UploadWatermarkService -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionconvertToResponse(UploadEntity entity) create(UploadRequest request) protected org.springframework.data.jpa.domain.Specification<UploadEntity>createSpecification(UploadRequest request) 创建Specification对象,子类必须实现 用于queryByOrg的通用实现voiddelete(UploadRequest entity) voidvoiddeleteByUid(String uid) voiddeleteFile(String filename) voiddeleteFromMinio(String objectPath) 删除 MinIO 中的文件protected UploadEntitydoSave(UploadEntity entity) 子类实现具体的保存逻辑protected org.springframework.data.domain.Page<UploadEntity>executePageQuery(org.springframework.data.jpa.domain.Specification<UploadEntity> spec, org.springframework.data.domain.Pageable pageable) 执行分页查询,子类必须实现 用于queryByOrg的通用实现booleanfileExistsInMinio(String objectPath) 检查 MinIO 中文件是否存在private StringfilterAndRenameFileName(String fileName) private StringgetFileExt(String fileName) private StringgetMinioDownloadUrl(String objectPath, int expiry) 获取 MinIO 文件下载URL(预签名URL)private StringgetMinioFolderByFileName(String fileName, UploadRequest request) 根据文件名确定 MinIO 存储文件夹private StringgetMinioFolderByFileType(org.springframework.web.multipart.MultipartFile file, UploadRequest request) 根据文件类型和请求信息确定 MinIO 存储文件夹getMinioUploadUrl(String objectPath, int expiry) 获取 MinIO 文件上传URL(预签名URL)handleFileUpload(org.springframework.web.multipart.MultipartFile file, UploadRequest request) handleFileUpload(org.springframework.web.multipart.MultipartFile file, UploadRequest request, jakarta.servlet.http.HttpServletRequest httpRequest) handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, UploadEntity entity) voidprivate booleanisAllowedFileType(String fileName, String contentType) private booleanisFileSizeValid(long fileSize) private booleanisImageFile(String fileName, String contentType) loadAll()org.springframework.core.io.ResourceloadAsResource(String filename) store(org.springframework.web.multipart.MultipartFile file, String fileName, UploadRequest request) storeFromUrl(String url, String fileName) storeLocalFileToMinio(String localFilePath, String fileName, UploadRequest request) 将本地文件存储到 MinIOstoreToMinio(org.springframework.web.multipart.MultipartFile file, String fileName, UploadRequest request) 将文件存储到 MinIOstoreUrlToMinio(String url, String fileName, UploadRequest request) 从 URL 下载并存储到 MinIOupdate(UploadRequest request) Methods inherited from class com.bytedesk.core.base.BaseRestService
deleteByOrgUid, findByOrgUid, getUidFromRequest, queryByOrg, queryByUid, queryByUser, recover, save, setUserUidToRequest
-
Field Details
-
uploadDir
-
uidUtils
-
modelMapper
private final org.modelmapper.ModelMapper modelMapper -
uploadRepository
-
bytedeskProperties
-
authService
-
uploadWatermarkService
-
uploadSecurityConfig
-
uploadSecurityLogger
-
uploadMinioService
-
-
Constructor Details
-
UploadRestService
public UploadRestService()
-
-
Method Details
-
createSpecification
protected org.springframework.data.jpa.domain.Specification<UploadEntity> createSpecification(UploadRequest request) Description copied from class:BaseRestService创建Specification对象,子类必须实现 用于queryByOrg的通用实现- Specified by:
createSpecificationin classBaseRestService<UploadEntity,UploadRequest, UploadResponse>
-
executePageQuery
protected org.springframework.data.domain.Page<UploadEntity> executePageQuery(org.springframework.data.jpa.domain.Specification<UploadEntity> spec, org.springframework.data.domain.Pageable pageable) Description copied from class:BaseRestService执行分页查询,子类必须实现 用于queryByOrg的通用实现- Specified by:
executePageQueryin classBaseRestService<UploadEntity,UploadRequest, UploadResponse>
-
findByUid
- Specified by:
findByUidin classBaseRestService<UploadEntity,UploadRequest, UploadResponse>
-
create
- Specified by:
createin classBaseRestService<UploadEntity,UploadRequest, UploadResponse>
-
update
- Specified by:
updatein classBaseRestService<UploadEntity,UploadRequest, UploadResponse>
-
doSave
Description copied from class:BaseRestService子类实现具体的保存逻辑- Specified by:
doSavein classBaseRestService<UploadEntity,UploadRequest, UploadResponse>
-
handleOptimisticLockingFailureException
public UploadEntity handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, UploadEntity entity) - Specified by:
handleOptimisticLockingFailureExceptionin classBaseRestService<UploadEntity,UploadRequest, UploadResponse>
-
storeFromUrl
-
store
-
store
public String store(org.springframework.web.multipart.MultipartFile file, String fileName, UploadRequest request) -
isAllowedFileType
-
isImageFile
-
getFileExt
-
filterAndRenameFileName
-
isFileSizeValid
private boolean isFileSizeValid(long fileSize) -
getFileSizeDescription
-
loadAll
-
loadAsResource
-
initUploadDir
public void initUploadDir() -
deleteFile
-
deleteAll
public void deleteAll() -
deleteByUid
- Specified by:
deleteByUidin classBaseRestService<UploadEntity,UploadRequest, UploadResponse>
-
delete
- Specified by:
deletein classBaseRestService<UploadEntity,UploadRequest, UploadResponse>
-
convertToResponse
- Specified by:
convertToResponsein classBaseRestService<UploadEntity,UploadRequest, UploadResponse>
-
handleFileUpload
public UploadResponse handleFileUpload(org.springframework.web.multipart.MultipartFile file, UploadRequest request) -
handleFileUpload
public UploadResponse handleFileUpload(org.springframework.web.multipart.MultipartFile file, UploadRequest request, jakarta.servlet.http.HttpServletRequest httpRequest) -
storeToMinio
public String storeToMinio(org.springframework.web.multipart.MultipartFile file, String fileName, UploadRequest request) 将文件存储到 MinIO- Parameters:
file- MultipartFile 文件fileName- 文件名request- 上传请求- Returns:
- 文件访问URL
-
storeLocalFileToMinio
将本地文件存储到 MinIO- Parameters:
localFilePath- 本地文件路径fileName- 文件名request- 上传请求- Returns:
- 文件访问URL
-
storeUrlToMinio
从 URL 下载并存储到 MinIO- Parameters:
url- 文件URLfileName- 文件名request- 上传请求- Returns:
- 文件访问URL
-
getMinioFolderByFileType
private String getMinioFolderByFileType(org.springframework.web.multipart.MultipartFile file, UploadRequest request) 根据文件类型和请求信息确定 MinIO 存储文件夹- Parameters:
file- MultipartFile 文件request- 上传请求- Returns:
- 存储文件夹路径
-
getMinioFolderByFileName
根据文件名确定 MinIO 存储文件夹- Parameters:
fileName- 文件名request- 上传请求- Returns:
- 存储文件夹路径
-
deleteFromMinio
删除 MinIO 中的文件- Parameters:
objectPath- 对象路径
-
fileExistsInMinio
检查 MinIO 中文件是否存在- Parameters:
objectPath- 对象路径- Returns:
- 是否存在
-
getMinioDownloadUrl
获取 MinIO 文件下载URL(预签名URL)- Parameters:
objectPath- 对象路径expiry- 过期时间(秒)- Returns:
- 预签名URL
-
getMinioUploadUrl
获取 MinIO 文件上传URL(预签名URL)- Parameters:
objectPath- 对象路径expiry- 过期时间(秒)- Returns:
- 预签名URL
-