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 AuthService
private final BytedeskProperties
private final org.modelmapper.ModelMapper
private final UidUtils
private final Path
private UploadMinioService
private final UploadRepository
private final UploadSecurityConfig
private final UploadSecurityLogger
private 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的通用实现void
delete
(UploadRequest entity) void
void
deleteByUid
(String uid) void
deleteFile
(String filename) void
deleteFromMinio
(String objectPath) 删除 MinIO 中的文件protected UploadEntity
doSave
(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的通用实现boolean
fileExistsInMinio
(String objectPath) 检查 MinIO 中文件是否存在private String
filterAndRenameFileName
(String fileName) private String
getFileExt
(String fileName) private String
getMinioDownloadUrl
(String objectPath, int expiry) 获取 MinIO 文件下载URL(预签名URL)private String
getMinioFolderByFileName
(String fileName, UploadRequest request) 根据文件名确定 MinIO 存储文件夹private String
getMinioFolderByFileType
(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) void
private boolean
isAllowedFileType
(String fileName, String contentType) private boolean
isFileSizeValid
(long fileSize) private boolean
isImageFile
(String fileName, String contentType) loadAll()
org.springframework.core.io.Resource
loadAsResource
(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:
createSpecification
in 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:
executePageQuery
in classBaseRestService<UploadEntity,
UploadRequest, UploadResponse>
-
findByUid
- Specified by:
findByUid
in classBaseRestService<UploadEntity,
UploadRequest, UploadResponse>
-
create
- Specified by:
create
in classBaseRestService<UploadEntity,
UploadRequest, UploadResponse>
-
update
- Specified by:
update
in classBaseRestService<UploadEntity,
UploadRequest, UploadResponse>
-
doSave
Description copied from class:BaseRestService
子类实现具体的保存逻辑- Specified by:
doSave
in classBaseRestService<UploadEntity,
UploadRequest, UploadResponse>
-
handleOptimisticLockingFailureException
public UploadEntity handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, UploadEntity entity) - Specified by:
handleOptimisticLockingFailureException
in 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:
deleteByUid
in classBaseRestService<UploadEntity,
UploadRequest, UploadResponse>
-
delete
- Specified by:
delete
in classBaseRestService<UploadEntity,
UploadRequest, UploadResponse>
-
convertToResponse
- Specified by:
convertToResponse
in 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
-