From 0b861f0e21871f59df0ece8211bde815fcb6eba5 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Wed, 5 Feb 2025 11:28:39 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/storage/adapters/AStorageAdapter.java | 2 +- .../ycwl/basic/storage/adapters/AliOssAdapter.java | 13 ++++++++++--- .../basic/storage/adapters/IStorageAdapter.java | 2 +- .../basic/storage/adapters/LocalStorageAdapter.java | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ycwl/basic/storage/adapters/AStorageAdapter.java b/src/main/java/com/ycwl/basic/storage/adapters/AStorageAdapter.java index 43c1693..eb06c2e 100644 --- a/src/main/java/com/ycwl/basic/storage/adapters/AStorageAdapter.java +++ b/src/main/java/com/ycwl/basic/storage/adapters/AStorageAdapter.java @@ -44,6 +44,6 @@ public abstract class AStorageAdapter implements IStorageAdapter { @Override public String getUrlForUpload(String... path) { - return getUrlForUpload(new Date(System.currentTimeMillis() + 1000 * 60 * 60), path); + return getUrlForUpload(new Date(System.currentTimeMillis() + 1000 * 60 * 60), "", path); } } diff --git a/src/main/java/com/ycwl/basic/storage/adapters/AliOssAdapter.java b/src/main/java/com/ycwl/basic/storage/adapters/AliOssAdapter.java index aa378c3..e4290a1 100644 --- a/src/main/java/com/ycwl/basic/storage/adapters/AliOssAdapter.java +++ b/src/main/java/com/ycwl/basic/storage/adapters/AliOssAdapter.java @@ -7,6 +7,7 @@ import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSException; import com.aliyun.oss.model.DeleteObjectsRequest; +import com.aliyun.oss.model.GeneratePresignedUrlRequest; import com.aliyun.oss.model.ListObjectsV2Request; import com.aliyun.oss.model.ListObjectsV2Result; import com.aliyun.oss.model.OSSObjectSummary; @@ -25,6 +26,7 @@ import java.net.URL; import java.util.ArrayList; import java.util.Collections; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -99,9 +101,14 @@ final public class AliOssAdapter extends AStorageAdapter { } @Override - public String getUrlForUpload(Date expireDate, String... path) { + public String getUrlForUpload(Date expireDate, String contentType, String... path) { OSS ossClient = getOssClient(); - URL url = ossClient.generatePresignedUrl(config.getBucketName(), buildPath(path), expireDate, HttpMethod.PUT); + GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(config.getBucketName(), buildPath(path), HttpMethod.PUT); + if (StringUtils.isNotBlank(contentType)) { + request.setContentType(contentType); + } + request.setExpiration(expireDate); + URL url = ossClient.generatePresignedUrl(request); return url.toString(); } @@ -109,7 +116,7 @@ final public class AliOssAdapter extends AStorageAdapter { public List listDir(String... path) { OSS ossClient = getOssClient(); ListObjectsV2Request listObjectsV2Request = new ListObjectsV2Request(config.getBucketName()); - listObjectsV2Request.setPrefix(buildPath(path)); + listObjectsV2Request.setPrefix(buildPath(path) + "/"); listObjectsV2Request.setMaxKeys(1000); boolean isTruncated = true; String continuationToken = null; diff --git a/src/main/java/com/ycwl/basic/storage/adapters/IStorageAdapter.java b/src/main/java/com/ycwl/basic/storage/adapters/IStorageAdapter.java index fba6cd9..1ccc7e3 100644 --- a/src/main/java/com/ycwl/basic/storage/adapters/IStorageAdapter.java +++ b/src/main/java/com/ycwl/basic/storage/adapters/IStorageAdapter.java @@ -21,7 +21,7 @@ public interface IStorageAdapter { String getUrlForDownload(String ...path); String getUrlForDownload(Date expireDate, String ...path); String getUrlForUpload(String ...path); - String getUrlForUpload(Date expireDate, String ...path); + String getUrlForUpload(Date expireDate, String contentType, String... path); List listDir(String ...path); boolean deleteDir(String ...path); } diff --git a/src/main/java/com/ycwl/basic/storage/adapters/LocalStorageAdapter.java b/src/main/java/com/ycwl/basic/storage/adapters/LocalStorageAdapter.java index 265238a..6f95d8c 100644 --- a/src/main/java/com/ycwl/basic/storage/adapters/LocalStorageAdapter.java +++ b/src/main/java/com/ycwl/basic/storage/adapters/LocalStorageAdapter.java @@ -41,7 +41,7 @@ public class LocalStorageAdapter extends AStorageAdapter{ } @Override - public String getUrlForUpload(Date expireDate, String... path) { + public String getUrlForUpload(Date expireDate, String contentType, String... path) { return ""; }