From a8895e0ce4d03c9a50ad0196bb4ddc6dd642cd34 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期四, 24 七月 2025 09:05:35 +0800 Subject: [PATCH] 司机端改派 --- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/NCOSSUtil.java | 243 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 243 insertions(+), 0 deletions(-) diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/NCOSSUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/NCOSSUtil.java new file mode 100644 index 0000000..e65e84f --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/NCOSSUtil.java @@ -0,0 +1,243 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong; + +import com.heredata.hos.HOS; +import com.heredata.hos.HOSClientBuilder; +import com.heredata.hos.model.CreateBucketRequest; +import com.heredata.hos.model.HOSObject; +import com.heredata.hos.model.PutObjectRequest; +import com.heredata.hos.model.PutObjectResult; +import com.heredata.hos.model.bucket.Bucket; +import com.heredata.model.VoidResult; +import com.stylefeng.guns.modular.system.util.SpringContextsUtil; +import lombok.extern.slf4j.Slf4j; + +import java.io.InputStream; + +/** + * OSS 工具类 + * @author zhibing.pu + * @Date 2025/6/23 17:50 + */ +@Slf4j +public class NCOSSUtil { + + private static QianYunTongConfig qianYunTongConfig = SpringContextsUtil.getBean(QianYunTongConfig.class).getQianYunTongConfig();; + + /** + * 创建桶 + * @param bucketName + * @return + */ + public static Boolean createBucket(String bucketName) { + /** + * endPoint:HOS的基础路径(公共前缀) + * account:账户的ID + * accessKey:向UAAS服务请求到的access_key + * secretKey:向UAAS服务请求到的secret_key + */ + HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey()); + try { + // 创建请求对象,并且设置创建桶名为"example"的桶 + CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName); + VoidResult result = hos.createBucket(createBucketRequest); + if (result.getResponse().isSuccessful()) { + log.info("创建桶成功:" + bucketName); + return true; + } + } catch (Exception e){ + log.info("创建桶失败:" + bucketName); + e.printStackTrace(); + } + return false; + } + + + /** + * 查询桶详情 + * @param bucketName + * @return + */ + public static Bucket getBucketInfo(String bucketName) { + /** + * endPoint:HOS的基础路径(公共前缀) + * account:账户的ID + * accessKey:向UAAS服务请求到的access_key + * secretKey:向UAAS服务请求到的secret_key + */ + HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey()); + try { + // 查询桶名为"example"的详情 + Bucket bucket = hos.getBucketInfo(bucketName); + return bucket; + } catch (Exception e){ + e.printStackTrace(); + } + return null; + } + + + /** + * 删除桶 + * @param bucketName + * @return + */ + public static Boolean deleteBucket(String bucketName) { + /** + * endPoint:HOS的基础路径(公共前缀) + * account:账户的ID + * accessKey:向UAAS服务请求到的access_key + * secretKey:向UAAS服务请求到的secret_key + */ + HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey()); + try { + VoidResult result = hos.deleteBucket(bucketName); + if (result.getResponse().isSuccessful()) { + log.info("删除桶成功:" + bucketName); + return true; + } + } catch (Exception e){ + log.info("删除桶成功:" + bucketName); + e.printStackTrace(); + } + return false; + } + + + /** + * 设置桶策略 + * @param bucketName 桶名 + * @param policyText 策略规则字符串 + * { + * // 策略配置的版本号,由用户定义 + * "Version": "2012-10-17", + * // 策略规则配置,可指定多条策略规则 + * "Statement": [{ + * // 策略规则ID,可用户指定,如不指定则服务自动生成一条 + * "Sid": "sid", + * // 策略规则指定的HOS API接口标识,可参照下表填写 + * "Action": [ + * "action" + * ], + * // 策略规则效果,具体表现为允许或拒绝,有效值为Allow(允许),Deny(拒绝); + * "Effect": "Allow", + * // 策略规则指定的资源参照下面resource配置 + * "Resource": "resource", + * // 策略规则指定的授权人 参照下面Principal配置 + * "Principal": { + * "HWS": [ + * "account_id:root" + * ] + * } + * } + * ] + * } + * @return + */ + public static Boolean setBucketPolicy(String bucketName, String policyText) { + /** + * endPoint:HOS的基础路径(公共前缀) + * account:账户的ID + * accessKey:向UAAS服务请求到的access_key + * secretKey:向UAAS服务请求到的secret_key + */ + HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey()); + // 桶策略字符串 + try { + VoidResult result = hos.setBucketPolicy(bucketName, policyText); + if (result.getResponse().isSuccessful()) { + log.info("设置桶策略成功:" + bucketName); + return true; + } + } catch (Exception e) { + log.info("设置桶策略失败:" + bucketName); + e.printStackTrace(); + } + return false; + } + + + /** + * 上传对象 + * @param bucketName 桶名称 + * @param key 存储文件名 + * @param inputStream 上传文件流 + * @return 对象唯一标识 + */ + public static String putObject(String bucketName, String key, InputStream inputStream) { + /** + * endPoint:HOS的基础路径(公共前缀) + * account:账户的ID + * accessKey:向UAAS服务请求到的access_key + * secretKey:向UAAS服务请求到的secret_key + */ + HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey()); + try { + PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key , inputStream); + PutObjectResult example = hos.putObject(putObjectRequest); + if (example.getResponse().isSuccessful()) { + log.info("上传对象成功:" + bucketName + "--->" + key); + return example.getETag(); + } + } catch (Exception e) { + log.info("上传对象成功:" + bucketName); + e.printStackTrace(); + } + return null; + } + + + /** + * 查询对象 + * @param bucketName 桶名称 + * @param key 存储文件名 + * @return + */ + public static HOSObject getObject(String bucketName, String key) { + /** + * endPoint:HOS的基础路径(公共前缀) + * account:账户的ID + * accessKey:向UAAS服务请求到的access_key + * secretKey:向UAAS服务请求到的secret_key + */ + HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey()); + try { + HOSObject example = hos.getObject(bucketName, key); + if (example.getResponse().isSuccessful()) { + log.info("查询对象成功:" + bucketName + "--->" + key); + return example; + } + } catch (Exception e) { + log.info("查询对象失败:" + bucketName); + e.printStackTrace(); + } + return null; + } + + + /** + * 删除对象 + * @param bucketName 桶名称 + * @param key 存储文件名 + * @return + */ + public static Boolean deleteObject(String bucketName, String key) { + /** + * endPoint:HOS的基础路径(公共前缀) + * account:账户的ID + * accessKey:向UAAS服务请求到的access_key + * secretKey:向UAAS服务请求到的secret_key + */ + HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey()); + try { + VoidResult example = hos.deleteObject(bucketName, key); + if (example.getResponse().isSuccessful()) { + log.info("删除对象成功:" + bucketName + "--->" + key); + return true; + } + } catch (Exception e) { + log.info("删除对象失败:" + bucketName + "--->" + key); + e.printStackTrace(); + } + return false; + } +} -- Gitblit v1.7.1