From dd9340090b9d960e486201e92d6a7a991d7cdec6 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期五, 23 七月 2021 19:14:37 +0800 Subject: [PATCH] add OSS模块 增加预览图片开关 --- ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuCloudStorageServiceImpl.java | 62 ++++++++++++++++++++++++++----- 1 files changed, 52 insertions(+), 10 deletions(-) diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuCloudStorageServiceImpl.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuCloudStorageServiceImpl.java index 0b699ab..f7b4d4e 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuCloudStorageServiceImpl.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuCloudStorageServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.oss.service.impl; +import cn.hutool.core.util.ArrayUtil; import com.qiniu.http.Response; import com.qiniu.storage.BucketManager; import com.qiniu.storage.Configuration; @@ -38,21 +39,40 @@ public QiniuCloudStorageServiceImpl(CloudStorageProperties properties) { this.properties = properties.getQiniu(); try { - // z0 z1 z2 - Configuration config = new Configuration(Region.autoRegion()); - // 榛樿涓嶄娇鐢╤ttps + Configuration config = new Configuration(getRegion(this.properties.getRegion())); + // https璁剧疆 config.useHttpsDomains = false; + if (this.properties.getIsHttps() != null) { + config.useHttpsDomains = this.properties.getIsHttps(); + } uploadManager = new UploadManager(config); Auth auth = Auth.create( this.properties.getAccessKey(), this.properties.getSecretKey()); - token = auth.uploadToken(this.properties.getBucketName()); + String bucketName = this.properties.getBucketName(); + token = auth.uploadToken(bucketName); bucketManager = new BucketManager(auth, config); + + if (!ArrayUtil.contains(bucketManager.buckets(), bucketName)) { + bucketManager.createBucket(bucketName, this.properties.getRegion()); + } } catch (Exception e) { throw new IllegalArgumentException("涓冪墰浜戝瓨鍌ㄩ厤缃敊璇�! 璇锋鏌ョ郴缁熼厤缃�!"); } } + @Override + public void createBucket() { + try { + String bucketName = properties.getBucketName(); + if (ArrayUtil.contains(bucketManager.buckets(), bucketName)) { + return; + } + bucketManager.createBucket(bucketName, properties.getRegion()); + } catch (Exception e) { + throw new OssException("鍒涘缓Bucket澶辫触, 璇锋牳瀵逛竷鐗涗簯閰嶇疆淇℃伅"); + } + } @Override public String getServiceType() { @@ -62,21 +82,21 @@ @Override public UploadResult upload(byte[] data, String path, String contentType) { try { - Response res = uploadManager.put(data, path, token); + Response res = uploadManager.put(data, path, token, null, contentType, false); if (!res.isOK()) { throw new RuntimeException("涓婁紶涓冪墰鍑洪敊锛�" + res.toString()); } } catch (Exception e) { throw new OssException("涓婁紶鏂囦欢澶辫触锛岃鏍稿涓冪墰閰嶇疆淇℃伅"); } - return new UploadResult().setUrl(properties.getDomain() + "/" + path).setFilename(path); + return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path); } @Override public void delete(String path) { try { - path = path.replace(this.properties.getDomain() + "/", ""); - Response res = bucketManager.delete(this.properties.getBucketName(), path); + path = path.replace(getEndpointLink() + "/", ""); + Response res = bucketManager.delete(properties.getBucketName(), path); if (!res.isOK()) { throw new RuntimeException("鍒犻櫎涓冪墰鏂囦欢鍑洪敊锛�" + res.toString()); } @@ -87,12 +107,12 @@ @Override public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) { - return upload(data, getPath(this.properties.getPrefix(), suffix), contentType); + return upload(data, getPath(properties.getPrefix(), suffix), contentType); } @Override public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) { - return upload(inputStream, getPath(this.properties.getPrefix(), suffix), contentType); + return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType); } @Override @@ -100,4 +120,26 @@ OssFactory.register(getServiceType(),this); } + @Override + public String getEndpointLink() { + return properties.getDomain(); + } + + private Region getRegion(String region) { + switch (region) { + case "z0": + return Region.region0(); + case "z1": + return Region.region1(); + case "z2": + return Region.region2(); + case "na0": + return Region.regionNa0(); + case "as0": + return Region.regionAs0(); + default: + return Region.autoRegion(); + } + } + } -- Gitblit v1.9.3