From b8d8733ad9eeeb170a71897d1078acdbea7680f2 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期二, 04 三月 2025 15:23:38 +0800 Subject: [PATCH] 优化 --- ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java | 72 ++++++++++++++++++++++++++++++------ 1 files changed, 60 insertions(+), 12 deletions(-) diff --git a/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java b/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java index d58060a..d5a1603 100644 --- a/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java +++ b/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java @@ -2,6 +2,14 @@ import cn.hutool.json.JSONConverter; import com.alibaba.fastjson.JSONObject; +import com.aliyun.oss.ClientBuilderConfiguration; +import com.aliyun.oss.OSS; +import com.aliyun.oss.OSSClientBuilder; +import com.aliyun.oss.OSSException; +import com.aliyun.oss.common.auth.CredentialsProviderFactory; +import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider; +import com.aliyun.oss.common.comm.SignVersion; +import com.aliyuncs.exceptions.ClientException; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.ycl.annotation.LogSave; @@ -13,6 +21,7 @@ import com.ycl.service.video.IVideoAlarmReportService; import com.ycl.service.video.impl.IVideoPointService; import com.ycl.util.VideoUtil; +import com.ycl.utils.ConstantPropertiesUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.SneakyThrows; @@ -29,10 +38,7 @@ import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; -import java.util.Base64; -import java.util.Dictionary; -import java.util.Hashtable; -import java.util.List; +import java.util.*; /** * @author admin @@ -151,19 +157,61 @@ } + private URL translateOSSUrl(String fileUrl) { + OSS ossClient = null; + try { + String endpoint = ConstantPropertiesUtils.END_POINT; + String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID; + String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET; + String bucketName = ConstantPropertiesUtils.BUCKET_NAME; + + String[] urlArray = fileUrl.split("Expires="); + +// System.out.println("-------urlArray[0]:" + urlArray[0]); + +// System.out.println("-------PREFIX_URL:" + ConstantPropertiesUtils.PREFIX_URL); + String objectName = urlArray[0].replace(ConstantPropertiesUtils.PREFIX_URL, ""); + + objectName = objectName.replace("?", ""); +// System.out.println("-------objectName:" + objectName); + ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); + + // 璁剧疆绛惧悕URL杩囨湡鏃堕棿锛屽崟浣嶄负姣銆傛湰绀轰緥浠ヨ缃繃鏈熸椂闂翠负1灏忔椂涓轰緥銆� + Date expiration = new Date(new Date().getTime() + 3600 * 1000L); + // 鐢熸垚浠ET鏂规硶璁块棶鐨勭鍚峌RL銆傛湰绀轰緥娌℃湁棰濆璇锋眰澶达紝鍏朵粬浜哄彲浠ョ洿鎺ラ�氳繃娴忚鍣ㄨ闂浉鍏冲唴瀹广�� + URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration); + + return url; + } catch (OSSException oe) { + System.out.println("Caught an OSSException, which means your request made it to OSS, " + + "but was rejected with an error response for some reason."); + System.out.println("Error Message:" + oe.getErrorMessage()); + System.out.println("Error Code:" + oe.getErrorCode()); + System.out.println("Request ID:" + oe.getRequestId()); + System.out.println("Host ID:" + oe.getHostId()); + } finally { + if (ossClient != null) { + ossClient.shutdown(); + } + } + return null; + } + private byte[] getBytes(String fileUrl, String OSSAccessKeyId, String Signature, String sessionId) { int index = sessionDic.get(sessionId); try { if (sessionDic.get(sessionId) < 10) { sessionDic.remove(sessionId); - fileUrl = fileUrl.replace("Expires", "v"); -// System.out.println("getImages鑾峰彇鍥剧墖鍦板潃锛�" + fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature); - URL url = null; - if (StringUtils.isNotBlank(OSSAccessKeyId) && StringUtils.isNotBlank(Signature)) { - url = new URL(fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature); - } else { - url = new URL(fileUrl); - } + URL url = translateOSSUrl(fileUrl); +// fileUrl = fileUrl.replace("Expires", "v"); +//// System.out.println("getImages鑾峰彇鍥剧墖鍦板潃锛�" + fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature); +// URL url = null; +// if (StringUtils.isNotBlank(OSSAccessKeyId) && StringUtils.isNotBlank(Signature)) { +// url = new URL(fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature); +// } else { +// url = new URL(fileUrl); +// } + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(10 * 1000); -- Gitblit v1.8.0