ycl-common/src/main/java/com/ycl/service/oss/OssService.java
@@ -2,6 +2,8 @@ import org.springframework.web.multipart.MultipartFile; import java.io.InputStream; public interface OssService { /** * 上传图片 @@ -16,4 +18,6 @@ * @return */ boolean deleteImages(String fileUrl); String uploadImages(InputStream inputStream, String ext); } ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
@@ -9,7 +9,9 @@ import org.springframework.web.multipart.MultipartFile; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.Date; import java.util.UUID; @Service public class OssServiceImpl implements OssService { @@ -62,6 +64,38 @@ return true; } @Override public String uploadImages(InputStream inputStream, String ext) { String endpoint = ConstantPropertiesUtils.END_POINT; String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID; String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET; String bucketName = ConstantPropertiesUtils.BUCKET_NAME; // 创建OSSClient实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 上传文件流 try { // 获取文件的名称 String fileName = String.valueOf(UUID.randomUUID()); ObjectMetadata objectMetadata = new ObjectMetadata(); objectMetadata.setContentType(getcontentType(ext)); // 调用oss的方法实现长传 // 第一个参数 bucketName // 第二个参数 上传到oss的文件路径和文件名称 ossClient.putObject(bucketName, fileName, inputStream,objectMetadata); // 关闭OSSClient。 ossClient.shutdown(); // 把上传的文件路径返回 (手动拼接) // 这里设置图片有效时间 我设置了30年 Date expiration = new Date(System.currentTimeMillis() + 946080000 * 1000); String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString(); return url; } catch (Exception e) { e.printStackTrace(); return null; } } public static String getcontentType(String FilenameExtension) { if (FilenameExtension.equalsIgnoreCase(".bmp")) { return "image/bmp"; ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java
@@ -9,6 +9,7 @@ import com.ycl.entity.video.VideoAlarmReport; import com.ycl.mapper.video.VideoAlarmReportMapper; import com.ycl.service.caseHandler.IViolationsService; import com.ycl.service.oss.OssService; import com.ycl.service.video.IVideoAlarmReportService; import com.ycl.utils.MediaFileUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -43,6 +44,9 @@ private MediaFileUtil mediaFileUtil; private IViolationsService violationsService; @Autowired private OssService ossService; @Autowired public void setMediaFileUtil(MediaFileUtil mediaFileUtil) { @@ -172,7 +176,7 @@ inputStream = new ByteArrayInputStream(os.toByteArray()); } picData = mediaFileUtil.savePicture(inputStream, extension); picData = ossService.uploadImages(inputStream, extension); } catch (Exception e) { e.printStackTrace(); }