[考勤对接]获取元数据信息优化
This commit is contained in:
parent
73b73087bb
commit
0db846dc85
@ -30,6 +30,7 @@ import cn.axzo.oss.http.model.ServerFileUploadResponse;
|
||||
import cn.axzo.oss.http.model.ServerFileUploadV2Request;
|
||||
import cn.axzo.oss.manager.api.dto.request.FindFileKeyDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.FindFileUrlDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.GetObjectMetaDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.ServerFileDeleteDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.ServerFileUploadByUrlDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.ServerFileUploadDto;
|
||||
@ -163,32 +164,8 @@ public class ServerFileController implements ServerFileServiceApi {
|
||||
*/
|
||||
@Override
|
||||
public CommonResponse<GetObjectMetaResponse> getObjectMeta(@RequestBody GetObjectMetaRequest request) {
|
||||
if (!StringUtils.hasText(request.getUrl()) && !StringUtils.hasText(request.getBucketName()) && !StringUtils.hasText(request.getKey())) {
|
||||
throw new BizException(CodeEnum.URL_BUCKET_NAME_KEY_ALL_EMPTY);
|
||||
}
|
||||
|
||||
String bucketName = UrlUtil.fetchBucketName(request.getBucketName(), request.getUrl());
|
||||
String bucketKey = UrlUtil.fetchBucketKey(request.getKey(), request.getUrl());
|
||||
ManaGetObjectMetaResponse response = this.fileService.getObjectMeta(bucketName
|
||||
, bucketKey, request.getUrl()
|
||||
, this.swtchChannelCode(request.getUrl()));
|
||||
return CommonResponse.success(BeanConverter.convert(response, GetObjectMetaResponse.class));
|
||||
}
|
||||
|
||||
/**
|
||||
* 决定渠道
|
||||
*/
|
||||
private String swtchChannelCode(String url) {
|
||||
if (!StringUtils.hasText(url)) {
|
||||
return "";
|
||||
}
|
||||
if (url.toLowerCase().contains("aliyun")) {
|
||||
return ChannelTypeEnum.OSS.getChannelCode();
|
||||
}
|
||||
if (url.toLowerCase().contains("huaweicloud")) {
|
||||
return ChannelTypeEnum.OBS.getChannelCode();
|
||||
}
|
||||
return url;
|
||||
GetObjectMetaDto dto = BeanConvertUtil.copyBean(request, GetObjectMetaDto.class);
|
||||
return CommonResponse.success(BeanConverter.convert(this.fileService.getObjectMeta(dto), GetObjectMetaResponse.class));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -39,6 +39,9 @@ public class UrlUtil {
|
||||
if (org.springframework.util.StringUtils.hasText(bucketName)) {
|
||||
return bucketName;
|
||||
}
|
||||
if (url.contains("?")) {
|
||||
url = url.split("\\?")[0];
|
||||
}
|
||||
if (org.springframework.util.StringUtils.hasText(url)) {
|
||||
if (url.contains(".") && url.contains("//")) {
|
||||
return url.substring(url.indexOf("//") + 2,url.indexOf("."));
|
||||
|
||||
@ -31,4 +31,8 @@ public class GetObjectMetaRequest {
|
||||
* 唯一标识
|
||||
*/
|
||||
private String id;
|
||||
/**
|
||||
* 文件对象key
|
||||
*/
|
||||
private String fileKey;
|
||||
}
|
||||
|
||||
@ -0,0 +1,38 @@
|
||||
package cn.axzo.oss.manager.api.dto.request;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author: xudawei
|
||||
* @date: 2024-07-16
|
||||
* @description: 元数据
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class GetObjectMetaDto {
|
||||
/**
|
||||
* 桶名称
|
||||
*/
|
||||
private String bucketName;
|
||||
/**
|
||||
* 文件key
|
||||
*/
|
||||
private String key;
|
||||
/**
|
||||
* 文件url
|
||||
*/
|
||||
private String url;
|
||||
/**
|
||||
* 唯一标识
|
||||
*/
|
||||
private String id;
|
||||
/**
|
||||
* 文件对象key
|
||||
*/
|
||||
private String fileKey;
|
||||
}
|
||||
@ -4,6 +4,7 @@ import cn.axzo.framework.auth.domain.ContextInfo;
|
||||
import cn.axzo.oss.manager.api.dto.request.DeleteFileDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.FindFileKeyDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.FindFileUrlDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.GetObjectMetaDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.MultipartUploadCompleteDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.MultipartUploadDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.MultipartUploadFileDto;
|
||||
@ -23,6 +24,7 @@ import cn.axzo.oss.manager.api.dto.response.ServerFileDownloadResponse;
|
||||
import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse;
|
||||
import cn.axzo.oss.manager.api.dto.response.SignUrlDownloadResponse;
|
||||
import cn.axzo.oss.manager.api.dto.response.SignUrlUploadResponse;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
@ -93,6 +95,11 @@ public interface FileService {
|
||||
*/
|
||||
ManaGetObjectMetaResponse getObjectMeta(String bucketName, String key, String url,String channelCode);
|
||||
|
||||
/**
|
||||
* 文件元数据信息
|
||||
*/
|
||||
ManaGetObjectMetaResponse getObjectMeta(@RequestBody GetObjectMetaDto dto);
|
||||
|
||||
/**
|
||||
* 授权给第三方下载
|
||||
*/
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.oss.service.impl;
|
||||
|
||||
import cn.axzo.core.utils.converter.BeanConverter;
|
||||
import cn.axzo.framework.auth.domain.ContextInfo;
|
||||
import cn.axzo.log.platform.client.LogPlatClient;
|
||||
import cn.axzo.log.platform.client.model.OperateLogReq;
|
||||
@ -33,6 +34,7 @@ import cn.axzo.oss.manager.api.dto.PartETag;
|
||||
import cn.axzo.oss.manager.api.dto.request.DeleteFileDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.FindFileKeyDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.FindFileUrlDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.GetObjectMetaDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.MultipartUploadCompleteDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.MultipartUploadDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.MultipartUploadFileDto;
|
||||
@ -56,6 +58,7 @@ import cn.axzo.oss.manager.api.vo.SignUrlUploadVo;
|
||||
import cn.axzo.oss.service.api.FileService;
|
||||
import cn.axzo.oss.service.metafile.WithFileFactory;
|
||||
import cn.axzo.oss.service.metafile.WithFileService;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
@ -67,6 +70,7 @@ import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
@ -1110,6 +1114,59 @@ public class FileServiceImpl implements FileService {
|
||||
fileManager.deleteFile(file.getBucketName(), tgtFileKey,file.getChannelCode());
|
||||
fileDao.deleteFile(dto.getFileKey());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 文件元数据信息
|
||||
*/
|
||||
@Override
|
||||
public ManaGetObjectMetaResponse getObjectMeta(@RequestBody GetObjectMetaDto dto) {
|
||||
if (!org.springframework.util.StringUtils.hasText(dto.getUrl()) && !org.springframework.util.StringUtils.hasText(dto.getBucketName())
|
||||
&& !org.springframework.util.StringUtils.hasText(dto.getKey()) && !org.springframework.util.StringUtils.hasText(dto.getFileKey())) {
|
||||
throw new BizException(CodeEnum.URL_BUCKET_NAME_KEY_ALL_EMPTY);
|
||||
}
|
||||
String bucketName = StringUtils.EMPTY;
|
||||
String bucketKey = StringUtils.EMPTY;
|
||||
String channelCode = StringUtils.EMPTY;
|
||||
String url = StringUtils.EMPTY;
|
||||
if (org.springframework.util.StringUtils.hasText(dto.getFileKey())) {
|
||||
File byFileUuid = this.fileDao.getByFileUuid(dto.getFileKey());
|
||||
if (Objects.nonNull(byFileUuid)) {
|
||||
bucketName = byFileUuid.getBucketName();
|
||||
bucketKey = Utility.generateFileKey(byFileUuid.getDirectory(), byFileUuid.getFileUuid(), byFileUuid.getFileFormat());
|
||||
channelCode = byFileUuid.getChannelCode();
|
||||
url = byFileUuid.getFileUrl();
|
||||
}
|
||||
}
|
||||
if (StringUtils.isBlank(bucketName) && StringUtils.isBlank(bucketKey)) {
|
||||
bucketName = UrlUtil.fetchBucketName(dto.getBucketName(), dto.getUrl());
|
||||
bucketKey = UrlUtil.fetchBucketKey(dto.getKey(), dto.getUrl());
|
||||
channelCode = this.swtchChannelCode(dto.getUrl());
|
||||
url = dto.getUrl();
|
||||
}
|
||||
|
||||
ManaGetObjectMetaResponse response = this.getObjectMeta(bucketName
|
||||
, bucketKey, url
|
||||
, channelCode);
|
||||
return BeanConverter.convert(response, ManaGetObjectMetaResponse.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 决定渠道
|
||||
*/
|
||||
private String swtchChannelCode(String url) {
|
||||
if (!org.springframework.util.StringUtils.hasText(url)) {
|
||||
return "";
|
||||
}
|
||||
if (url.toLowerCase().contains("aliyun")) {
|
||||
return ChannelTypeEnum.OSS.getChannelCode();
|
||||
}
|
||||
if (url.toLowerCase().contains("huaweicloud")) {
|
||||
return ChannelTypeEnum.OBS.getChannelCode();
|
||||
}
|
||||
return url;
|
||||
}
|
||||
|
||||
/**
|
||||
* 元数据
|
||||
*/
|
||||
|
||||
Loading…
Reference in New Issue
Block a user