Merge remote-tracking branch 'refs/remotes/origin/dev'

This commit is contained in:
landaiqing
2024-07-15 23:19:55 +08:00

View File

@@ -6,7 +6,6 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.file.FileNameUtil; import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.io.unit.DataSizeUtil; import cn.hutool.core.io.unit.DataSizeUtil;
import cn.hutool.core.lang.hash.Hash;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@@ -14,8 +13,6 @@ import com.aliyun.oss.OSS;
import com.aliyun.oss.common.utils.HttpHeaders; import com.aliyun.oss.common.utils.HttpHeaders;
import com.aliyun.oss.model.*; import com.aliyun.oss.model.*;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.model.FileInfo;
import com.schisandra.oss.application.oss.constant.OssConstant; import com.schisandra.oss.application.oss.constant.OssConstant;
import com.schisandra.oss.application.oss.core.StandardOssClient; import com.schisandra.oss.application.oss.core.StandardOssClient;
import com.schisandra.oss.application.oss.core.ali.model.AliOssConfig; import com.schisandra.oss.application.oss.core.ali.model.AliOssConfig;
@@ -35,6 +32,7 @@ import org.springframework.stereotype.Component;
import java.io.File; import java.io.File;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.URL;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
@@ -57,23 +55,29 @@ public class AliOssClient implements StandardOssClient {
private OSS oss; private OSS oss;
private AliOssConfig aliOssConfig; private AliOssConfig aliOssConfig;
public String getAliPreviewUrl(String fileName) {
URL presignedUrl = oss.generatePresignedUrl(getBucketName(), fileName, new Date());
return String.valueOf(presignedUrl);
}
public String getAliBucketSize(String bucket) { public String getAliBucketSize(String bucket) {
ObjectListing objectListing = oss.listObjects(bucket, ""); ObjectListing objectListing = oss.listObjects(bucket, "");
long x = 0L; long x = 0L;
List<OSSObjectSummary> sums = objectListing.getObjectSummaries(); List<OSSObjectSummary> sums = objectListing.getObjectSummaries();
for(OSSObjectSummary objectSummary : sums){ for (OSSObjectSummary objectSummary : sums) {
x+=objectSummary.getSize(); x += objectSummary.getSize();
} }
return DataSizeUtil.format(x); return DataSizeUtil.format(x);
} }
public List<HashMap<String,String>> selectAllBucket() { public List<HashMap<String, String>> selectAllBucket() {
List<Bucket> buckets = oss.listBuckets(); List<Bucket> buckets = oss.listBuckets();
List<HashMap<String,String>> list1 = new ArrayList<>(); List<HashMap<String, String>> list1 = new ArrayList<>();
buckets.forEach(bucket -> { buckets.forEach(bucket -> {
HashMap<String, String> names = new HashMap<>(); HashMap<String, String> names = new HashMap<>();
names.put("name",bucket.getName()); names.put("name", bucket.getName());
names.put("size",getAliBucketSize(bucket.getName())); names.put("size", getAliBucketSize(bucket.getName()));
list1.add(names); list1.add(names);
}); });
return list1; return list1;
@@ -85,12 +89,12 @@ public class AliOssClient implements StandardOssClient {
* @return: java.util.List<com.schisandra.oss.application.oss.model.OssInfo> * @return: java.util.List<com.schisandra.oss.application.oss.model.OssInfo>
* @date: 2024/7/5 13:34 * @date: 2024/7/5 13:34
*/ */
public String transfer(String before){ public String transfer(String before) {
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US); SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
Date date = new Date(); Date date = new Date();
try{ try {
date = sdf.parse(before); date = sdf.parse(before);
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
String formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date); String formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
@@ -98,23 +102,23 @@ public class AliOssClient implements StandardOssClient {
return formatStr; return formatStr;
} }
public List<OssInfo> listAliInfo(String bucket, String prefix){ public List<OssInfo> listAliInfo(String bucket, String prefix) {
// 列举文件。如果不设置Prefix则列举存储空间下的所有文件。如果设置Prefix则列举包含指定前缀的文件。 // 列举文件。如果不设置Prefix则列举存储空间下的所有文件。如果设置Prefix则列举包含指定前缀的文件。
ObjectListing objectListing = oss.listObjects(bucket, prefix); ObjectListing objectListing = oss.listObjects(bucket, prefix);
List<OSSObjectSummary> sums = objectListing.getObjectSummaries(); List<OSSObjectSummary> sums = objectListing.getObjectSummaries();
List<OssInfo> infos = new ArrayList<>(); List<OssInfo> infos = new ArrayList<>();
if(prefix == ""){ if (prefix == "") {
for(OSSObjectSummary objectSummary : sums){ for (OSSObjectSummary objectSummary : sums) {
OssInfo info = new OssInfo(); OssInfo info = new OssInfo();
String[] split_path = objectSummary.getKey().split("/"); String[] split_path = objectSummary.getKey().split("/");
if(split_path.length>=2) if (split_path.length >= 2)
continue; continue;
String[] split_path_again = split_path[0].split("\\."); String[] split_path_again = split_path[0].split("\\.");
if(split_path_again.length>=2) { if (split_path_again.length >= 2) {
info.setIsDir(false); info.setIsDir(false);
}else{ } else {
info.setIsDir(true); info.setIsDir(true);
} }
info.setName(split_path[0]); info.setName(split_path[0]);
@@ -126,21 +130,21 @@ public class AliOssClient implements StandardOssClient {
infos.add(info); infos.add(info);
} }
}else{ } else {
for(OSSObjectSummary objectSummary : sums){ for (OSSObjectSummary objectSummary : sums) {
OssInfo info = new OssInfo(); OssInfo info = new OssInfo();
int x = prefix.split("/").length; int x = prefix.split("/").length;
String[] split_path = objectSummary.getKey().split("/"); String[] split_path = objectSummary.getKey().split("/");
if(split_path.length>=x+2) if (split_path.length >= x + 2)
continue; continue;
String[] split_path_again = split_path[split_path.length-1].split("\\."); String[] split_path_again = split_path[split_path.length - 1].split("\\.");
if(split_path_again.length>=2){ if (split_path_again.length >= 2) {
info.setIsDir(false); info.setIsDir(false);
}else{ } else {
info.setIsDir(true); info.setIsDir(true);
} }
info.setName(split_path[split_path.length-1]); info.setName(split_path[split_path.length - 1]);
info.setPath(objectSummary.getKey()); info.setPath(objectSummary.getKey());
info.setLength(DataSizeUtil.format(objectSummary.getSize())); info.setLength(DataSizeUtil.format(objectSummary.getSize()));
@@ -159,7 +163,7 @@ public class AliOssClient implements StandardOssClient {
if (!oss.doesBucketExist(bucketName)) { if (!oss.doesBucketExist(bucketName)) {
Bucket bucket = oss.createBucket(bucketName); Bucket bucket = oss.createBucket(bucketName);
bucket.setRegion("chengdu"); bucket.setRegion("chengdu");
}else { } else {
return "bucket already exists"; return "bucket already exists";
} }
} catch (Exception e) { } catch (Exception e) {
@@ -169,14 +173,13 @@ public class AliOssClient implements StandardOssClient {
} }
public String deleteBucket(String bucketName) { public String deleteBucket(String bucketName) {
try{ try {
if (oss.doesBucketExist(bucketName)){ if (oss.doesBucketExist(bucketName)) {
VoidResult voidResult = oss.deleteBucket(bucketName); VoidResult voidResult = oss.deleteBucket(bucketName);
} } else {
else{
return "bucket does not exist"; return "bucket does not exist";
} }
}catch(Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return "yes"; return "yes";