Commit 642f8f53 by zhangxingmin

Merge remote-tracking branch 'origin/dev' into prod

parents c5866e47 93314088
...@@ -25,7 +25,7 @@ public class ApiPdfController implements ApiPdfFeignClient { ...@@ -25,7 +25,7 @@ public class ApiPdfController implements ApiPdfFeignClient {
private ApiPdfService apiPdfService; private ApiPdfService apiPdfService;
/** /**
* 根据文件模板填充数据生成PDF * 根据文件模板填充数据生成PDF ****
* @param request * @param request
* @return * @return
*/ */
......
...@@ -58,16 +58,25 @@ public class ApiExcelServiceImpl implements ApiExcelService { ...@@ -58,16 +58,25 @@ public class ApiExcelServiceImpl implements ApiExcelService {
// 根据项目ID获取服务商信息 // 根据项目ID获取服务商信息
OssProvider provider = ossProviderService.getProviderByProjectId(request.getProjectBizId()); OssProvider provider = ossProviderService.getProviderByProjectId(request.getProjectBizId());
if (provider == null) { if (provider == null) {
log.error("未找到项目对应的OSS服务商,projectBizId={}", request.getProjectBizId()); throw new BusinessException("未找到项目对应的OSS提供商,projectBizId=" + request.getProjectBizId());
return Result.fail("未找到对应的OSS服务商配置");
} }
OSS tempClient = ossClientFactory.createOssClient(provider); OSS ossClient = null;
try {
ossClient = ossClientFactory.createOssClient(provider);
String url = appointmentExcelService.exportAppointment(request.getData(), String url = appointmentExcelService.exportAppointment(request.getData(),
request.getTemplateType(), request.getTemplateType(),
request.getAppointmentBizId(), request.getAppointmentBizId(),
request.getProjectBizId()); ossClient,provider);
response.setUrl(url); response.setUrl(url);
return Result.success(response); return Result.success(response);
}catch (Exception e) {
log.error("导出excel-预约信息异常:{}",e.getMessage());
throw new BusinessException("导出excel-预约信息异常");
}finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
} }
/** /**
......
package com.yd.oss.api.service.impl; package com.yd.oss.api.service.impl;
import com.aliyun.oss.OSS;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.oss.api.service.ApiMaterialService; import com.yd.oss.api.service.ApiMaterialService;
import com.yd.oss.feign.dto.ApiMaterialDto; import com.yd.oss.feign.dto.ApiMaterialDto;
...@@ -7,11 +9,14 @@ import com.yd.oss.feign.request.ApiMaterialDownloadRequest; ...@@ -7,11 +9,14 @@ import com.yd.oss.feign.request.ApiMaterialDownloadRequest;
import com.yd.oss.feign.request.ApiMaterialListRequest; import com.yd.oss.feign.request.ApiMaterialListRequest;
import com.yd.oss.feign.response.ApiMaterialDownloadResponse; import com.yd.oss.feign.response.ApiMaterialDownloadResponse;
import com.yd.oss.feign.response.ApiMaterialListResponse; import com.yd.oss.feign.response.ApiMaterialListResponse;
import com.yd.oss.service.config.OssClientFactory;
import com.yd.oss.service.dto.MaterialDto; import com.yd.oss.service.dto.MaterialDto;
import com.yd.oss.service.model.Material; import com.yd.oss.service.model.Material;
import com.yd.oss.service.model.OssProvider;
import com.yd.oss.service.model.RelObjectMaterial; import com.yd.oss.service.model.RelObjectMaterial;
import com.yd.oss.service.service.CompressedFileService; import com.yd.oss.service.service.CompressedFileService;
import com.yd.oss.service.service.IMaterialService; import com.yd.oss.service.service.IMaterialService;
import com.yd.oss.service.service.IOssProviderService;
import com.yd.oss.service.service.IRelObjectMaterialService; import com.yd.oss.service.service.IRelObjectMaterialService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -35,6 +40,12 @@ public class ApiMaterialServiceImpl implements ApiMaterialService { ...@@ -35,6 +40,12 @@ public class ApiMaterialServiceImpl implements ApiMaterialService {
@Autowired @Autowired
private IRelObjectMaterialService iRelObjectMaterialService; private IRelObjectMaterialService iRelObjectMaterialService;
@Autowired
private IOssProviderService ossProviderService;
@Autowired
private OssClientFactory ossClientFactory;
/** /**
* 列表查询-材料基础信息 * 列表查询-材料基础信息
* @param request * @param request
...@@ -61,18 +72,21 @@ public class ApiMaterialServiceImpl implements ApiMaterialService { ...@@ -61,18 +72,21 @@ public class ApiMaterialServiceImpl implements ApiMaterialService {
*/ */
@Override @Override
public Result<ApiMaterialDownloadResponse> downloadCompressedFile(ApiMaterialDownloadRequest request) { public Result<ApiMaterialDownloadResponse> downloadCompressedFile(ApiMaterialDownloadRequest request) {
// if (StringUtils.isNotBlank(request.getObjectBizId())) { // 获取提供商
// List<ApiMaterialDto> apiMaterialDtoList = new ArrayList<>(); OssProvider provider = ossProviderService.getProviderByProjectId(request.getProjectBizId());
// List<RelObjectMaterial> relObjectMaterialList = iRelObjectMaterialService.queryList(request.getObjectBizId()); if (provider == null) {
// if (!CollectionUtils.isEmpty(relObjectMaterialList)) { throw new BusinessException("未找到项目对应的OSS提供商,projectBizId=" + request.getProjectBizId());
// List<String> materialBizIdList = relObjectMaterialList.stream().map(RelObjectMaterial::getMaterialBizId).collect(Collectors.toList()); }
//
// for (RelObjectMaterial relObjectMaterial : relObjectMaterialList) { OSS ossClient = null;
// try {
// } ossClient = ossClientFactory.createOssClient(provider);
// } return compressedFileService.downloadCompressedFile(request,ossClient,provider);
// } } finally {
return compressedFileService.downloadCompressedFile(request); if (ossClient != null) {
ossClient.shutdown();
}
}
} }
......
package com.yd.oss.api.service.impl; package com.yd.oss.api.service.impl;
import com.aliyun.oss.OSS;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.oss.api.service.ApiPdfService; import com.yd.oss.api.service.ApiPdfService;
import com.yd.oss.feign.request.ApiGeneratePdfRequest; import com.yd.oss.feign.request.ApiGeneratePdfRequest;
import com.yd.oss.feign.response.ApiGeneratePdfResponse; import com.yd.oss.feign.response.ApiGeneratePdfResponse;
import com.yd.oss.service.config.OssClientFactory;
import com.yd.oss.service.model.OssProvider;
import com.yd.oss.service.service.IOssProviderService;
import com.yd.oss.service.service.PdfService; import com.yd.oss.service.service.PdfService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -18,6 +22,12 @@ public class ApiPdfServiceImpl implements ApiPdfService { ...@@ -18,6 +22,12 @@ public class ApiPdfServiceImpl implements ApiPdfService {
@Autowired @Autowired
private PdfService pdfService; private PdfService pdfService;
@Autowired
private IOssProviderService ossProviderService;
@Autowired
private OssClientFactory ossClientFactory;
/** /**
* 根据文件模板填充数据生成PDF * 根据文件模板填充数据生成PDF
* @param request * @param request
...@@ -26,13 +36,29 @@ public class ApiPdfServiceImpl implements ApiPdfService { ...@@ -26,13 +36,29 @@ public class ApiPdfServiceImpl implements ApiPdfService {
@Override @Override
public Result<ApiGeneratePdfResponse> generatePDF(ApiGeneratePdfRequest request) { public Result<ApiGeneratePdfResponse> generatePDF(ApiGeneratePdfRequest request) {
ApiGeneratePdfResponse response = new ApiGeneratePdfResponse(); ApiGeneratePdfResponse response = new ApiGeneratePdfResponse();
// 根据项目ID获取OSS提供商
OssProvider provider = ossProviderService.getProviderByProjectId(request.getProjectBizId());
if (provider == null) {
throw new BusinessException("未找到项目对应的OSS提供商,projectBizId=" + request.getProjectBizId());
}
OSS ossClient = null;
try { try {
String url = pdfService.generatePDF(request.getDataObject(),request.getObjectId(),request.getTemplateType(),request.getCustomFileName()); //根据提供商创建OSS
ossClient = ossClientFactory.createOssClient(provider);
String url = pdfService.generatePDF(request.getDataObject(),
request.getObjectId(),
request.getTemplateType(),
request.getCustomFileName(),
provider,ossClient);
response.setUrl(url); response.setUrl(url);
return Result.success(response); return Result.success(response);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
throw new BusinessException("生成PDF异常"); throw new BusinessException("生成PDF异常");
}finally {
if (ossClient != null) {
ossClient.shutdown();
}
} }
} }
} }
...@@ -26,6 +26,45 @@ ...@@ -26,6 +26,45 @@
</content> </content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" /> <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-sts:3.0.0" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:4.6.0" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.6" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.6" level="project" />
<orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.12" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
<orderEntry type="library" name="Maven: org.jacoco:org.jacoco.agent:runtime:0.8.7" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-local:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-api:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-transformer:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-util-conversion:1.1.12" level="project" />
<orderEntry type="library" name="Maven: org.zeroturnaround:zt-exec:1.11" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-transformer-msoffice-word:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-transformer-msoffice-base:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-transformer-api:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-util-all:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-util-transformer-process:1.1.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-lite:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.21" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.07" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:5.1.1" level="project" />
<orderEntry type="library" name="Maven: cn.afterturn:easypoi-base:4.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.1" level="project" />
<orderEntry type="library" name="Maven: ognl:ognl:3.2.6" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: cn.afterturn:easypoi-web:4.4.0" level="project" />
<orderEntry type="library" name="Maven: cn.afterturn:easypoi-annotation:4.4.0" level="project" />
<orderEntry type="library" name="Maven: org.jxls:jxls:2.12.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-jexl3:3.2" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.4" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.slf4j:jcl-over-slf4j:1.7.36" level="project" />
<orderEntry type="library" name="Maven: org.jxls:jxls-poi:2.12.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2021.0.1.0" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2021.0.1.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-commons:2021.0.1.0" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-commons:2021.0.1.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.4.2" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.4.2" level="project" />
......
...@@ -24,4 +24,9 @@ public class ApiGeneratePdfRequest<T> { ...@@ -24,4 +24,9 @@ public class ApiGeneratePdfRequest<T> {
* 自定义文件名(有值用自定义文件名上传,无值用默认生成的规则文件名) * 自定义文件名(有值用自定义文件名上传,无值用默认生成的规则文件名)
*/ */
private String customFileName; private String customFileName;
/**
* 项目ID
*/
private String projectBizId;
} }
...@@ -8,6 +8,11 @@ import java.util.List; ...@@ -8,6 +8,11 @@ import java.util.List;
public class ApiMaterialDownloadRequest { public class ApiMaterialDownloadRequest {
/** /**
* 项目ID
*/
private String projectBizId;
/**
* 对象名(包名) * 对象名(包名)
*/ */
private String objectName; private String objectName;
......
package com.yd.oss.service.service; package com.yd.oss.service.service;
import com.aliyun.oss.OSS;
import com.yd.oss.service.model.OssProvider;
import java.util.Map; import java.util.Map;
public interface AppointmentExcelService { public interface AppointmentExcelService {
...@@ -7,5 +10,5 @@ public interface AppointmentExcelService { ...@@ -7,5 +10,5 @@ public interface AppointmentExcelService {
String exportAppointment(Map<String, Object> data, String exportAppointment(Map<String, Object> data,
String templateType, String templateType,
String appointmentBizId, String appointmentBizId,
String projectBizId); OSS ossClient, OssProvider provider);
} }
package com.yd.oss.service.service; package com.yd.oss.service.service;
import com.aliyun.oss.OSS;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.oss.feign.request.ApiMaterialDownloadRequest; import com.yd.oss.feign.request.ApiMaterialDownloadRequest;
import com.yd.oss.feign.response.ApiMaterialDownloadResponse; import com.yd.oss.feign.response.ApiMaterialDownloadResponse;
import com.yd.oss.service.model.OssProvider;
public interface CompressedFileService { public interface CompressedFileService {
Result<ApiMaterialDownloadResponse> downloadCompressedFile(ApiMaterialDownloadRequest request); Result<ApiMaterialDownloadResponse> downloadCompressedFile(ApiMaterialDownloadRequest request, OSS ossClient, OssProvider provider);
} }
package com.yd.oss.service.service; package com.yd.oss.service.service;
import com.aliyun.oss.OSS;
import com.yd.oss.service.model.OssProvider;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import java.io.File; import java.io.File;
...@@ -7,7 +9,7 @@ import java.io.IOException; ...@@ -7,7 +9,7 @@ import java.io.IOException;
public interface ExcelService { public interface ExcelService {
File downloadTemplateToTempFile(String ossObjectKey) throws IOException; File downloadTemplateToTempFile(String ossObjectKey, OSS ossClient, OssProvider provider) throws IOException;
File saveWorkbookToTempFile(Workbook workbook) throws IOException; File saveWorkbookToTempFile(Workbook workbook) throws IOException;
} }
package com.yd.oss.service.service; package com.yd.oss.service.service;
import com.aliyun.oss.OSS;
import com.yd.oss.service.dto.FileProdDto; import com.yd.oss.service.dto.FileProdDto;
import com.yd.oss.service.model.FileTemplate; import com.yd.oss.service.model.FileTemplate;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.oss.service.model.OssProvider;
import java.io.InputStream; import java.io.InputStream;
...@@ -16,7 +18,7 @@ import java.io.InputStream; ...@@ -16,7 +18,7 @@ import java.io.InputStream;
*/ */
public interface IFileTemplateService extends IService<FileTemplate> { public interface IFileTemplateService extends IService<FileTemplate> {
InputStream getTemplateInputStreamFromOSS(String bucketName, String objectKey); InputStream getTemplateInputStreamFromOSS(String bucketName, String objectKey, OssProvider provider, OSS ossClient);
FileProdDto getFileProd(String templateName, String templateType); FileProdDto getFileProd(String templateName, String templateType);
......
...@@ -78,9 +78,9 @@ public interface OssService { ...@@ -78,9 +78,9 @@ public interface OssService {
// 获取上传结果(包含文件信息和访问URL) // 获取上传结果(包含文件信息和访问URL)
UploadResult getUploadResult(String fileKey, Duration expiration); UploadResult getUploadResult(String fileKey, Duration expiration);
String upload(byte[] content, String fileName); String upload(byte[] content, String fileName,OSS ossClient, OssProvider provider);
String upload(InputStream inputStream, String fileName); // String upload(InputStream inputStream, String fileName);
// 批量上传文件 // 批量上传文件
com.yd.oss.feign.response.ApiBatchUploadResponse batchUploadFiles( com.yd.oss.feign.response.ApiBatchUploadResponse batchUploadFiles(
......
package com.yd.oss.service.service; package com.yd.oss.service.service;
import com.aliyun.oss.OSS;
import com.yd.oss.service.model.OssProvider;
import java.io.IOException; import java.io.IOException;
public interface PdfService<T> { public interface PdfService<T> {
String generatePDF(T dataObject,String objectId, String templateType,String customFileName) throws IOException; String generatePDF(T dataObject, String objectId, String templateType, String customFileName, OssProvider provider, OSS ossClient) throws IOException;
} }
...@@ -172,7 +172,7 @@ public class AliYunOssServiceImpl implements OssService { ...@@ -172,7 +172,7 @@ public class AliYunOssServiceImpl implements OssService {
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fileData); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fileData);
// 生成文件key(这里使用ossUtils的方法,需要传入projectBizId,但此时provider已知,可根据需要调整) // 生成文件key(这里使用ossUtils的方法,需要传入projectBizId,但此时provider已知,可根据需要调整)
String fileKey = ossUtils.getFilePrefix(provider.getProviderBizId(), "", fileName, type); String fileKey = ossUtils.getFilePrefix(provider.getProjectBizId(), "", fileName, type);
String actualBucket = StringUtils.isNotBlank(bucketName) ? bucketName : provider.getBucketName(); String actualBucket = StringUtils.isNotBlank(bucketName) ? bucketName : provider.getBucketName();
String fileType = FileUtil.getFileType(fileName); String fileType = FileUtil.getFileType(fileName);
...@@ -618,19 +618,23 @@ public class AliYunOssServiceImpl implements OssService { ...@@ -618,19 +618,23 @@ public class AliYunOssServiceImpl implements OssService {
} }
/** /**
* 上传字节数组并设置公共读(示例方法) * 上传字节数组并设置公共读
*/ */
public String upload(byte[] content, String fileName) { public String upload(byte[] content, String fileName,OSS ossClient, OssProvider provider) {
OssProvider defaultProvider = getDefaultProvider(); // OssProvider defaultProvider = getDefaultProvider();
OSS ossClient = null; // OSS ossClient = null;
try { try {
ossClient = ossClientFactory.createOssClient(defaultProvider); // ossClient = ossClientFactory.createOssClient(defaultProvider);
String objectName = "appointment/excel/" + UUID.randomUUID() + "/" + fileName; // String objectName = "appointment/excel/" + UUID.randomUUID() + "/" + fileName;
//扩展名
String fileType = FileUtil.getFileType(fileName);
//获取通用文件路径的前缀
String filePrefix = ossUtils.getFilePrefix(provider.getProjectBizId(),"",fileName,fileType);
PutObjectRequest putObjectRequest = new PutObjectRequest( PutObjectRequest putObjectRequest = new PutObjectRequest(
defaultProvider.getBucketName(), objectName, new ByteArrayInputStream(content)); provider.getBucketName(), filePrefix, new ByteArrayInputStream(content));
ossClient.putObject(putObjectRequest); ossClient.putObject(putObjectRequest);
ossClient.setObjectAcl(defaultProvider.getBucketName(), objectName, CannedAccessControlList.PublicRead); ossClient.setObjectAcl(provider.getBucketName(), filePrefix, CannedAccessControlList.PublicRead);
return "https://" + defaultProvider.getBucketName() + "." + defaultProvider.getEndpoint() + "/" + objectName; return "https://" + provider.getBucketName() + "." + provider.getEndpoint() + "/" + filePrefix;
} finally { } finally {
if (ossClient != null) { if (ossClient != null) {
ossClient.shutdown(); ossClient.shutdown();
...@@ -641,17 +645,21 @@ public class AliYunOssServiceImpl implements OssService { ...@@ -641,17 +645,21 @@ public class AliYunOssServiceImpl implements OssService {
/** /**
* 上传输入流并设置公共读 * 上传输入流并设置公共读
*/ */
public String upload(InputStream inputStream, String fileName) { public String upload(InputStream inputStream, String fileName,OSS ossClient, OssProvider provider) {
OssProvider defaultProvider = getDefaultProvider(); // OssProvider defaultProvider = getDefaultProvider();
OSS ossClient = null; // OSS ossClient = null;
try { try {
ossClient = ossClientFactory.createOssClient(defaultProvider); // ossClient = ossClientFactory.createOssClient(defaultProvider);
String objectName = "appointment/excel/" + UUID.randomUUID() + "/" + fileName; // String objectName = "appointment/excel/" + UUID.randomUUID() + "/" + fileName;
//扩展名
String fileType = FileUtil.getFileType(fileName);
//获取通用文件路径的前缀
String filePrefix = ossUtils.getFilePrefix(provider.getProjectBizId(),"",fileName,fileType);
PutObjectRequest putObjectRequest = new PutObjectRequest( PutObjectRequest putObjectRequest = new PutObjectRequest(
defaultProvider.getBucketName(), objectName, inputStream); provider.getBucketName(), filePrefix, inputStream);
ossClient.putObject(putObjectRequest); ossClient.putObject(putObjectRequest);
ossClient.setObjectAcl(defaultProvider.getBucketName(), objectName, CannedAccessControlList.PublicRead); ossClient.setObjectAcl(provider.getBucketName(), filePrefix, CannedAccessControlList.PublicRead);
return "https://" + defaultProvider.getBucketName() + "." + defaultProvider.getEndpoint() + "/" + objectName; return "https://" + provider.getBucketName() + "." + provider.getEndpoint() + "/" + filePrefix;
} finally { } finally {
if (ossClient != null) { if (ossClient != null) {
ossClient.shutdown(); ossClient.shutdown();
......
...@@ -2,9 +2,11 @@ package com.yd.oss.service.service.impl; ...@@ -2,9 +2,11 @@ package com.yd.oss.service.service.impl;
import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import com.aliyun.oss.OSS;
import com.yd.common.utils.CommonUtil; import com.yd.common.utils.CommonUtil;
import com.yd.common.utils.DateUtil; import com.yd.common.utils.DateUtil;
import com.yd.oss.service.dto.FileProdDto; import com.yd.oss.service.dto.FileProdDto;
import com.yd.oss.service.model.OssProvider;
import com.yd.oss.service.service.AppointmentExcelService; import com.yd.oss.service.service.AppointmentExcelService;
import com.yd.oss.service.service.ExcelService; import com.yd.oss.service.service.ExcelService;
import com.yd.oss.service.service.IFileTemplateService; import com.yd.oss.service.service.IFileTemplateService;
...@@ -40,13 +42,13 @@ public class AppointmentExcelServiceImpl implements AppointmentExcelService { ...@@ -40,13 +42,13 @@ public class AppointmentExcelServiceImpl implements AppointmentExcelService {
* @param fileName * @param fileName
* @return * @return
*/ */
public String exportAndUploadToOss(Map<String, Object> data, String ossObjectKey, String fileName,String projectBizId) { public String exportAndUploadToOss(Map<String, Object> data, String ossObjectKey, String fileName,OSS ossClient, OssProvider provider) {
File tempFile = null; File tempFile = null;
File processedFile = null; File processedFile = null;
try { try {
// 1. 从OSS下载模板到临时文件 // 1. 从OSS下载模板到临时文件
tempFile = excelService.downloadTemplateToTempFile(ossObjectKey); tempFile = excelService.downloadTemplateToTempFile(ossObjectKey,ossClient,provider);
// 2. 使用临时文件路径创建TemplateExportParams // 2. 使用临时文件路径创建TemplateExportParams
TemplateExportParams params = new TemplateExportParams(tempFile.getAbsolutePath()); TemplateExportParams params = new TemplateExportParams(tempFile.getAbsolutePath());
...@@ -69,7 +71,7 @@ public class AppointmentExcelServiceImpl implements AppointmentExcelService { ...@@ -69,7 +71,7 @@ public class AppointmentExcelServiceImpl implements AppointmentExcelService {
byte[] excelBytes = outputStream.toByteArray(); byte[] excelBytes = outputStream.toByteArray();
// 7. 上传到OSS // 7. 上传到OSS
String ossUrl = ossService.upload(excelBytes, fileName); String ossUrl = ossService.upload(excelBytes, fileName,ossClient,provider);
// 8. 关闭资源 // 8. 关闭资源
outputStream.close(); outputStream.close();
...@@ -302,12 +304,12 @@ public class AppointmentExcelServiceImpl implements AppointmentExcelService { ...@@ -302,12 +304,12 @@ public class AppointmentExcelServiceImpl implements AppointmentExcelService {
public String exportAppointment(Map<String, Object> data, public String exportAppointment(Map<String, Object> data,
String templateType, String templateType,
String appointmentBizId, String appointmentBizId,
String projectBizId) { OSS ossClient, OssProvider provider) {
// 获取模板信息 // 获取模板信息
FileProdDto fileProdDto = iFileTemplateService.getFileProd("", templateType); FileProdDto fileProdDto = iFileTemplateService.getFileProd("", templateType);
// 生成文件名 // 生成文件名
String fileName = "预约信息_" + appointmentBizId + "_" + System.currentTimeMillis() + ".xlsx"; String fileName = "预约信息_" + appointmentBizId + "_" + System.currentTimeMillis() + ".xlsx";
// 导出并上传到OSS // 导出并上传到OSS
return exportAndUploadToOss(data, fileProdDto.getFileKey(), fileName,projectBizId); return exportAndUploadToOss(data, fileProdDto.getFileKey(), fileName,ossClient,provider);
} }
} }
package com.yd.oss.service.service.impl; package com.yd.oss.service.service.impl;
import com.aliyun.oss.OSS;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.oss.feign.dto.ApiMaterialDto; import com.yd.oss.feign.dto.ApiMaterialDto;
import com.yd.oss.feign.request.ApiMaterialDownloadRequest; import com.yd.oss.feign.request.ApiMaterialDownloadRequest;
import com.yd.oss.feign.response.ApiMaterialDownloadResponse; import com.yd.oss.feign.response.ApiMaterialDownloadResponse;
import com.yd.oss.service.model.OssProvider;
import com.yd.oss.service.service.CompressedFileService; import com.yd.oss.service.service.CompressedFileService;
import com.yd.oss.service.service.OssService; import com.yd.oss.service.service.OssService;
import com.yd.oss.service.utils.OssUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -30,11 +33,14 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -30,11 +33,14 @@ public class CompressedFileServiceImpl implements CompressedFileService {
@Autowired @Autowired
private OssService ossService; private OssService ossService;
@Autowired // @Autowired
private String defaultBucket; // 注入默认存储桶 // private String defaultBucket; // 注入默认存储桶
//
// @Autowired
// private String defaultEndpoint; // 注入默认服务端点
@Autowired @Autowired
private String defaultEndpoint; // 注入默认服务端点 private OssUtils ossUtils;
/** /**
...@@ -43,7 +49,7 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -43,7 +49,7 @@ public class CompressedFileServiceImpl implements CompressedFileService {
* @return * @return
*/ */
@Override @Override
public Result<ApiMaterialDownloadResponse> downloadCompressedFile(ApiMaterialDownloadRequest request) { public Result<ApiMaterialDownloadResponse> downloadCompressedFile(ApiMaterialDownloadRequest request, OSS ossClient, OssProvider provider) {
try { try {
// 验证请求参数 // 验证请求参数
if (request == null || CollectionUtils.isEmpty(request.getApiMaterialDtoList())) { if (request == null || CollectionUtils.isEmpty(request.getApiMaterialDtoList())) {
...@@ -71,7 +77,7 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -71,7 +77,7 @@ public class CompressedFileServiceImpl implements CompressedFileService {
String fileUrl = materialDto.getFileUrlList().get(i); String fileUrl = materialDto.getFileUrlList().get(i);
try { try {
// 下载文件并添加到压缩包 // 下载文件并添加到压缩包
boolean success = addFileToZip(zos, fileUrl, folderName, i + 1); boolean success = addFileToZip(zos, fileUrl, folderName, i + 1,ossClient,provider);
if (success) { if (success) {
successFileCount++; successFileCount++;
} }
...@@ -96,7 +102,7 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -96,7 +102,7 @@ public class CompressedFileServiceImpl implements CompressedFileService {
successFileCount, tempZipFile.length()); successFileCount, tempZipFile.length());
// 上传压缩包到OSS // 上传压缩包到OSS
String ossUrl = uploadZipToOss(tempZipFile, request.getObjectName()); String ossUrl = uploadZipToOss(tempZipFile, request.getObjectName(),ossClient,provider);
// 构建响应 // 构建响应
ApiMaterialDownloadResponse response = new ApiMaterialDownloadResponse(); ApiMaterialDownloadResponse response = new ApiMaterialDownloadResponse();
...@@ -153,7 +159,7 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -153,7 +159,7 @@ public class CompressedFileServiceImpl implements CompressedFileService {
/** /**
* 下载文件并添加到压缩包 * 下载文件并添加到压缩包
*/ */
private boolean addFileToZip(ZipOutputStream zos, String fileUrl, String folderName, int fileIndex) throws Exception { private boolean addFileToZip(ZipOutputStream zos, String fileUrl, String folderName, int fileIndex,OSS ossClient,OssProvider provider) throws Exception {
// 从URL中提取文件名 // 从URL中提取文件名
String fileName = extractFileNameFromUrl(fileUrl, fileIndex); String fileName = extractFileNameFromUrl(fileUrl, fileIndex);
...@@ -161,7 +167,7 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -161,7 +167,7 @@ public class CompressedFileServiceImpl implements CompressedFileService {
String zipEntryName = folderName + "/" + fileName; String zipEntryName = folderName + "/" + fileName;
// 从OSS下载文件 // 从OSS下载文件
InputStream fileInputStream = downloadFileFromUrl(fileUrl); InputStream fileInputStream = downloadFileFromUrl(fileUrl,ossClient,provider);
if (fileInputStream == null) { if (fileInputStream == null) {
throw new IOException("无法下载文件: " + fileUrl); throw new IOException("无法下载文件: " + fileUrl);
} }
...@@ -258,10 +264,10 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -258,10 +264,10 @@ public class CompressedFileServiceImpl implements CompressedFileService {
/** /**
* 从URL下载文件 * 从URL下载文件
*/ */
private InputStream downloadFileFromUrl(String fileUrl) { private InputStream downloadFileFromUrl(String fileUrl,OSS ossClient,OssProvider provider) {
try { try {
// 方法1: 尝试从OSS下载(如果URL是我们OSS的) // 方法1: 尝试从OSS下载(如果URL是我们OSS的)
String fileKey = extractFileKeyFromUrl(fileUrl); String fileKey = extractFileKeyFromUrl(fileUrl,ossClient,provider);
if (StringUtils.hasText(fileKey)) { if (StringUtils.hasText(fileKey)) {
log.debug("从OSS下载文件,fileKey: {}", fileKey); log.debug("从OSS下载文件,fileKey: {}", fileKey);
return ossService.downloadFile(fileKey); return ossService.downloadFile(fileKey);
...@@ -280,7 +286,7 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -280,7 +286,7 @@ public class CompressedFileServiceImpl implements CompressedFileService {
/** /**
* 从完整URL中提取OSS文件key * 从完整URL中提取OSS文件key
*/ */
private String extractFileKeyFromUrl(String fileUrl) { private String extractFileKeyFromUrl(String fileUrl,OSS ossClient,OssProvider provider) {
if (!StringUtils.hasText(fileUrl)) { if (!StringUtils.hasText(fileUrl)) {
return null; return null;
} }
...@@ -297,10 +303,10 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -297,10 +303,10 @@ public class CompressedFileServiceImpl implements CompressedFileService {
} }
// 从配置获取endpoint // 从配置获取endpoint
String endpoint = defaultEndpoint; String endpoint = provider.getEndpoint();
// 查找bucket.endpoint组合 // 查找bucket.endpoint组合
String bucketEndpoint = defaultBucket + "." + endpoint; String bucketEndpoint = provider.getBucketName() + "." + endpoint;
int bucketEndpointIndex = url.indexOf(bucketEndpoint); int bucketEndpointIndex = url.indexOf(bucketEndpoint);
if (bucketEndpointIndex >= 0) { if (bucketEndpointIndex >= 0) {
...@@ -368,7 +374,7 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -368,7 +374,7 @@ public class CompressedFileServiceImpl implements CompressedFileService {
/** /**
* 上传压缩包到OSS * 上传压缩包到OSS
*/ */
private String uploadZipToOss(File zipFile, String objectName) throws Exception { private String uploadZipToOss(File zipFile, String objectName,OSS ossClient, OssProvider provider) throws Exception {
if (!zipFile.exists() || zipFile.length() == 0) { if (!zipFile.exists() || zipFile.length() == 0) {
throw new IOException("压缩文件不存在或为空"); throw new IOException("压缩文件不存在或为空");
} }
...@@ -388,9 +394,9 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -388,9 +394,9 @@ public class CompressedFileServiceImpl implements CompressedFileService {
try { try {
// 方法1: 直接调用public方法 // 方法1: 直接调用public方法
java.lang.reflect.Method uploadMethod = AliYunOssServiceImpl.class java.lang.reflect.Method uploadMethod = AliYunOssServiceImpl.class
.getMethod("upload", InputStream.class, String.class); .getMethod("upload", InputStream.class, String.class,OSS.class,OssProvider.class);
String ossUrl = (String) uploadMethod.invoke(aliYunOssService, fis, zipFileName); String ossUrl = (String) uploadMethod.invoke(aliYunOssService, fis, zipFileName,ossClient,provider);
log.info("压缩包上传成功,URL: {}", ossUrl); log.info("压缩包上传成功,URL: {}", ossUrl);
return ossUrl; return ossUrl;
...@@ -402,9 +408,9 @@ public class CompressedFileServiceImpl implements CompressedFileService { ...@@ -402,9 +408,9 @@ public class CompressedFileServiceImpl implements CompressedFileService {
byte[] zipBytes = readFileToBytes(zipFile); byte[] zipBytes = readFileToBytes(zipFile);
try { try {
java.lang.reflect.Method uploadMethod2 = AliYunOssServiceImpl.class java.lang.reflect.Method uploadMethod2 = AliYunOssServiceImpl.class
.getMethod("upload", byte[].class, String.class); .getMethod("upload", byte[].class, String.class,OSS.class,OssProvider.class);
String ossUrl = (String) uploadMethod2.invoke(aliYunOssService, zipBytes, zipFileName); String ossUrl = (String) uploadMethod2.invoke(aliYunOssService, zipBytes, zipFileName,ossClient,provider);
log.info("压缩包上传成功,URL: {}", ossUrl); log.info("压缩包上传成功,URL: {}", ossUrl);
return ossUrl; return ossUrl;
} catch (NoSuchMethodException e2) { } catch (NoSuchMethodException e2) {
......
...@@ -2,6 +2,7 @@ package com.yd.oss.service.service.impl; ...@@ -2,6 +2,7 @@ package com.yd.oss.service.service.impl;
import com.aliyun.oss.OSS; import com.aliyun.oss.OSS;
import com.aliyun.oss.model.OSSObject; import com.aliyun.oss.model.OSSObject;
import com.yd.oss.service.model.OssProvider;
import com.yd.oss.service.service.ExcelService; import com.yd.oss.service.service.ExcelService;
import com.yd.oss.service.service.OssService; import com.yd.oss.service.service.OssService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -27,11 +28,11 @@ public class ExcelServiceImpl implements ExcelService { ...@@ -27,11 +28,11 @@ public class ExcelServiceImpl implements ExcelService {
@Resource @Resource
private OssService ossService; private OssService ossService;
@Autowired // @Autowired
private OSS ossClient; // 注入OSS客户端 // private OSS ossClient; // 注入OSS客户端
@Autowired // @Autowired
private String defaultBucket; // 注入默认存储桶 // private String defaultBucket; // 注入默认存储桶
/** /**
* 从OSS下载模板到临时文件 * 从OSS下载模板到临时文件
...@@ -40,13 +41,13 @@ public class ExcelServiceImpl implements ExcelService { ...@@ -40,13 +41,13 @@ public class ExcelServiceImpl implements ExcelService {
* @throws IOException * @throws IOException
*/ */
@Override @Override
public File downloadTemplateToTempFile(String ossObjectKey) throws IOException { public File downloadTemplateToTempFile(String ossObjectKey,OSS ossClient, OssProvider provider) throws IOException {
// 创建临时文件 // 创建临时文件
Path tempPath = Files.createTempFile("template", ".xlsx"); Path tempPath = Files.createTempFile("template", ".xlsx");
File tempFile = tempPath.toFile(); File tempFile = tempPath.toFile();
tempFile.deleteOnExit(); // JVM退出时删除 tempFile.deleteOnExit(); // JVM退出时删除
try (OSSObject ossObject = ossClient.getObject(defaultBucket, ossObjectKey); try (OSSObject ossObject = ossClient.getObject(provider.getBucketName(), ossObjectKey);
InputStream inputStream = ossObject.getObjectContent(); InputStream inputStream = ossObject.getObjectContent();
FileOutputStream outputStream = new FileOutputStream(tempFile)) { FileOutputStream outputStream = new FileOutputStream(tempFile)) {
......
...@@ -37,8 +37,8 @@ public class FileTemplateServiceImpl extends ServiceImpl<FileTemplateMapper, Fil ...@@ -37,8 +37,8 @@ public class FileTemplateServiceImpl extends ServiceImpl<FileTemplateMapper, Fil
@Autowired @Autowired
private IOssProviderService ossProviderService; private IOssProviderService ossProviderService;
@Autowired // @Autowired
private OSS ossClient; // 注入OSS客户端 // private OSS ossClient; // 注入OSS客户端
/** /**
* 根据模板名称和模板类型获取云服务商和文件信息 * 根据模板名称和模板类型获取云服务商和文件信息
...@@ -56,7 +56,7 @@ public class FileTemplateServiceImpl extends ServiceImpl<FileTemplateMapper, Fil ...@@ -56,7 +56,7 @@ public class FileTemplateServiceImpl extends ServiceImpl<FileTemplateMapper, Fil
* @param objectKey * @param objectKey
* @return * @return
*/ */
public InputStream getTemplateInputStreamFromOSS(String bucketName, String objectKey) { public InputStream getTemplateInputStreamFromOSS(String bucketName, String objectKey,OssProvider provider, OSS ossClient) {
OSSObject object = ossClient.getObject(bucketName, objectKey); OSSObject object = ossClient.getObject(bucketName, objectKey);
return object.getObjectContent(); return object.getObjectContent();
} }
......
...@@ -6,7 +6,9 @@ import com.aliyun.oss.model.GeneratePresignedUrlRequest; ...@@ -6,7 +6,9 @@ import com.aliyun.oss.model.GeneratePresignedUrlRequest;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.yd.oss.service.dto.FileProdDto; import com.yd.oss.service.dto.FileProdDto;
import com.yd.oss.service.model.OssProvider;
import com.yd.oss.service.service.*; import com.yd.oss.service.service.*;
import com.yd.oss.service.utils.OssUtils;
import com.yd.oss.service.utils.PdfUtil; import com.yd.oss.service.utils.PdfUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -39,7 +41,10 @@ public class PdfServiceImpl<T> implements PdfService<T> { ...@@ -39,7 +41,10 @@ public class PdfServiceImpl<T> implements PdfService<T> {
private FieldValueProvider<T> fieldValueProvider; private FieldValueProvider<T> fieldValueProvider;
@Autowired @Autowired
private OSS ossClient; // 注入OSS客户端 private OssUtils ossUtils;
// @Autowired
// private OSS ossClient; // 注入OSS客户端
/** /**
* 根据入参的数据和文件模板的JSON字段映射构建生成PDF * 根据入参的数据和文件模板的JSON字段映射构建生成PDF
...@@ -50,13 +55,13 @@ public class PdfServiceImpl<T> implements PdfService<T> { ...@@ -50,13 +55,13 @@ public class PdfServiceImpl<T> implements PdfService<T> {
* @return * @return
* @throws IOException * @throws IOException
*/ */
public String generatePDF(T dataObject, String objectId, String templateType,String customFileName) throws IOException { public String generatePDF(T dataObject, String objectId, String templateType, String customFileName, OssProvider provider, OSS ossClient) throws IOException {
// 获取模板信息 // 获取模板信息
FileProdDto fileProdDto = iFileTemplateService.getFileProd("", templateType); FileProdDto fileProdDto = iFileTemplateService.getFileProd("", templateType);
// 从OSS获取模板 // 从OSS获取模板
InputStream templateStream = iFileTemplateService.getTemplateInputStreamFromOSS( InputStream templateStream = iFileTemplateService.getTemplateInputStreamFromOSS(
fileProdDto.getBucketName(), fileProdDto.getFileKey()); fileProdDto.getBucketName(), fileProdDto.getFileKey(),provider,ossClient);
// 创建临时文件 // 创建临时文件
File tempInputFile = File.createTempFile("template", ".docx"); File tempInputFile = File.createTempFile("template", ".docx");
...@@ -71,16 +76,23 @@ public class PdfServiceImpl<T> implements PdfService<T> { ...@@ -71,16 +76,23 @@ public class PdfServiceImpl<T> implements PdfService<T> {
// 上传到OSS // 上传到OSS
String objectName = ""; String objectName = "";
//项目类型
String projectType = ossUtils.getProjectType(provider.getProjectBizId());
projectType = StringUtils.isNotBlank(projectType) ? projectType : "pc";
//环境变量
String env = ossUtils.getActiveEnv();
env = StringUtils.isNotBlank(env) ? env : "prod";
String prefix = projectType + "/" + env + "/";
if (StringUtils.isNotBlank(customFileName)) { if (StringUtils.isNotBlank(customFileName)) {
objectName = "insurance_schedules/" + System.currentTimeMillis() + "/" + customFileName + ".pdf"; objectName = prefix + "insurance_schedules/" + System.currentTimeMillis() + "/" + customFileName + ".pdf";
}else { }else {
objectName = "insurance_schedules/" + objectId + "_" + System.currentTimeMillis() + ".pdf"; objectName = prefix + "insurance_schedules/" + objectId + "_" + System.currentTimeMillis() + ".pdf";
} }
uploadToOSS(tempPdfFile, fileProdDto.getBucketName(), objectName); uploadToOSS(tempPdfFile, fileProdDto.getBucketName(), objectName,provider,ossClient);
// 生成访问URL // 生成访问URL
return generatePresignedUrl(fileProdDto.getBucketName(), objectName); return generatePresignedUrl(fileProdDto.getBucketName(), objectName,provider,ossClient);
} finally { } finally {
// 清理临时文件 // 清理临时文件
...@@ -328,7 +340,7 @@ public class PdfServiceImpl<T> implements PdfService<T> { ...@@ -328,7 +340,7 @@ public class PdfServiceImpl<T> implements PdfService<T> {
* @param objectName * @param objectName
* @throws IOException * @throws IOException
*/ */
private void uploadToOSS(File file, String bucketName, String objectName) throws IOException { private void uploadToOSS(File file, String bucketName, String objectName,OssProvider provider, OSS ossClient) throws IOException {
ossClient.putObject(bucketName, objectName, new FileInputStream(file)); ossClient.putObject(bucketName, objectName, new FileInputStream(file));
} }
...@@ -338,7 +350,7 @@ public class PdfServiceImpl<T> implements PdfService<T> { ...@@ -338,7 +350,7 @@ public class PdfServiceImpl<T> implements PdfService<T> {
* @param objectName * @param objectName
* @return * @return
*/ */
private String generatePresignedUrl(String bucketName, String objectName) { private String generatePresignedUrl(String bucketName, String objectName,OssProvider provider, OSS ossClient) {
Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000); Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000);
GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, objectName, HttpMethod.GET); GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, objectName, HttpMethod.GET);
request.setExpiration(expiration); request.setExpiration(expiration);
......
...@@ -45,6 +45,24 @@ public class OssUtils { ...@@ -45,6 +45,24 @@ public class OssUtils {
} }
/** /**
* 根据项目ID获取项目类型
* @param projectBizId
* @return
*/
public String getProjectType(String projectBizId) {
String projectType = "pc";
if (StringUtils.isNotBlank(projectBizId)) {
//通过项目ID查询项目类型
Result<ApiSysProjectDetailResponse> result = apiSysProjectFeignClient.detail(projectBizId);
if (result.getData() != null) {
ApiSysProjectDetailResponse response = result.getData();
projectType = StringUtils.isNotBlank(response.getProjectType()) ? response.getProjectType() : "pc";
}
}
return projectType;
}
/**
* 获取分片文件路径的前缀 * 获取分片文件路径的前缀
* @param projectBizId * @param projectBizId
* @param env * @param env
...@@ -67,7 +85,7 @@ public class OssUtils { ...@@ -67,7 +85,7 @@ public class OssUtils {
return projectType + "/" + env + "/large_file/uploads/" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd/")); return projectType + "/" + env + "/large_file/uploads/" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd/"));
} }
private String getActiveEnv() { public String getActiveEnv() {
String[] activeProfiles = environment.getActiveProfiles(); String[] activeProfiles = environment.getActiveProfiles();
return activeProfiles.length > 0 ? activeProfiles[0] : "prod"; return activeProfiles.length > 0 ? activeProfiles[0] : "prod";
} }
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
</content> </content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" /> <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: com.google.guava:guava:30.0-jre" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.5" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.5" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.5" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.5" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.5" level="project" /> <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.5" level="project" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment