From 55793861746f0a8dd74b84d444a60c43f982b255 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期四, 06 二月 2025 23:17:38 +0800 Subject: [PATCH] oss获取图方式修改 --- ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java | 69 ++++++++++++++++++++++++++++------ 1 files changed, 57 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..e3ea3f3 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,58 @@ } + 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="); + + String[] urlArray2 = urlArray[0].split("aliyuncs.com/"); + + String objectName = urlArray2[1].replace("?", ""); + + 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