diff --git a/minio-plus-core/pom.xml b/minio-plus-core/pom.xml
index 52cf190..ac2f5b3 100644
--- a/minio-plus-core/pom.xml
+++ b/minio-plus-core/pom.xml
@@ -12,6 +12,12 @@
minio-plus-core
jar
+
+ 8
+ 8
+ UTF-8
+
+
org.springframework.boot
@@ -27,7 +33,7 @@
me.liuxp
- minio-s3-api-definition
+ s3-api-definition
diff --git a/minio-s3-api/pom.xml b/minio-plus-s3-api/pom.xml
similarity index 80%
rename from minio-s3-api/pom.xml
rename to minio-plus-s3-api/pom.xml
index 9b2dbc7..f67a470 100644
--- a/minio-s3-api/pom.xml
+++ b/minio-plus-s3-api/pom.xml
@@ -13,9 +13,8 @@
pom
- minio-s3-api-definition
- minio-s3-api-custom
- minio-s3-api-official
+ s3-api-definition
+ s3-api-minio
\ No newline at end of file
diff --git a/minio-s3-api/minio-s3-api-definition/pom.xml b/minio-plus-s3-api/s3-api-definition/pom.xml
similarity index 92%
rename from minio-s3-api/minio-s3-api-definition/pom.xml
rename to minio-plus-s3-api/s3-api-definition/pom.xml
index d501fd8..3edae71 100644
--- a/minio-s3-api/minio-s3-api-definition/pom.xml
+++ b/minio-plus-s3-api/s3-api-definition/pom.xml
@@ -9,7 +9,7 @@
4.0.0
- minio-s3-api-definition
+ s3-api-definition
jar
diff --git a/minio-s3-api/minio-s3-api-definition/src/main/java/org/liuxp/minioplus/s3/def/ListParts.java b/minio-plus-s3-api/s3-api-definition/src/main/java/org/liuxp/minioplus/s3/def/ListParts.java
similarity index 100%
rename from minio-s3-api/minio-s3-api-definition/src/main/java/org/liuxp/minioplus/s3/def/ListParts.java
rename to minio-plus-s3-api/s3-api-definition/src/main/java/org/liuxp/minioplus/s3/def/ListParts.java
diff --git a/minio-s3-api/minio-s3-api-definition/src/main/java/org/liuxp/minioplus/s3/def/MinioS3Client.java b/minio-plus-s3-api/s3-api-definition/src/main/java/org/liuxp/minioplus/s3/def/MinioS3Client.java
similarity index 100%
rename from minio-s3-api/minio-s3-api-definition/src/main/java/org/liuxp/minioplus/s3/def/MinioS3Client.java
rename to minio-plus-s3-api/s3-api-definition/src/main/java/org/liuxp/minioplus/s3/def/MinioS3Client.java
diff --git a/minio-s3-api/minio-s3-api-official/pom.xml b/minio-plus-s3-api/s3-api-minio/pom.xml
similarity index 92%
rename from minio-s3-api/minio-s3-api-official/pom.xml
rename to minio-plus-s3-api/s3-api-minio/pom.xml
index 3277c6a..9b24066 100644
--- a/minio-s3-api/minio-s3-api-official/pom.xml
+++ b/minio-plus-s3-api/s3-api-minio/pom.xml
@@ -9,7 +9,7 @@
4.0.0
- minio-s3-api-official
+ s3-api-minio
jar
@@ -31,7 +31,7 @@
me.liuxp
- minio-s3-api-definition
+ s3-api-definition
me.liuxp
diff --git a/minio-s3-api/minio-s3-api-official/src/main/java/org/liuxp/minioplus/s3/official/CustomMinioClient.java b/minio-plus-s3-api/s3-api-minio/src/main/java/org/liuxp/minioplus/s3/official/CustomMinioClient.java
similarity index 100%
rename from minio-s3-api/minio-s3-api-official/src/main/java/org/liuxp/minioplus/s3/official/CustomMinioClient.java
rename to minio-plus-s3-api/s3-api-minio/src/main/java/org/liuxp/minioplus/s3/official/CustomMinioClient.java
diff --git a/minio-s3-api/minio-s3-api-official/src/main/java/org/liuxp/minioplus/s3/official/MinioS3ClientImpl.java b/minio-plus-s3-api/s3-api-minio/src/main/java/org/liuxp/minioplus/s3/official/MinioS3ClientImpl.java
similarity index 100%
rename from minio-s3-api/minio-s3-api-official/src/main/java/org/liuxp/minioplus/s3/official/MinioS3ClientImpl.java
rename to minio-plus-s3-api/s3-api-minio/src/main/java/org/liuxp/minioplus/s3/official/MinioS3ClientImpl.java
diff --git a/minio-s3-api/minio-s3-api-official/src/main/resources/META-INF/spring.factories b/minio-plus-s3-api/s3-api-minio/src/main/resources/META-INF/spring.factories
similarity index 100%
rename from minio-s3-api/minio-s3-api-official/src/main/resources/META-INF/spring.factories
rename to minio-plus-s3-api/s3-api-minio/src/main/resources/META-INF/spring.factories
diff --git a/minio-s3-api/minio-s3-api-official/src/test/java/Digest.java b/minio-plus-s3-api/s3-api-minio/src/test/java/Digest.java
similarity index 100%
rename from minio-s3-api/minio-s3-api-official/src/test/java/Digest.java
rename to minio-plus-s3-api/s3-api-minio/src/test/java/Digest.java
diff --git a/minio-s3-api/minio-s3-api-official/src/test/java/S3Base.java b/minio-plus-s3-api/s3-api-minio/src/test/java/S3Base.java
similarity index 100%
rename from minio-s3-api/minio-s3-api-official/src/test/java/S3Base.java
rename to minio-plus-s3-api/s3-api-minio/src/test/java/S3Base.java
diff --git a/minio-s3-api/minio-s3-api-official/src/test/java/S3Escaper.java b/minio-plus-s3-api/s3-api-minio/src/test/java/S3Escaper.java
similarity index 100%
rename from minio-s3-api/minio-s3-api-official/src/test/java/S3Escaper.java
rename to minio-plus-s3-api/s3-api-minio/src/test/java/S3Escaper.java
diff --git a/minio-s3-api/minio-s3-api-official/src/test/java/Signer.java b/minio-plus-s3-api/s3-api-minio/src/test/java/Signer.java
similarity index 100%
rename from minio-s3-api/minio-s3-api-official/src/test/java/Signer.java
rename to minio-plus-s3-api/s3-api-minio/src/test/java/Signer.java
diff --git a/minio-s3-api/minio-s3-api-official/src/test/java/Time.java b/minio-plus-s3-api/s3-api-minio/src/test/java/Time.java
similarity index 100%
rename from minio-s3-api/minio-s3-api-official/src/test/java/Time.java
rename to minio-plus-s3-api/s3-api-minio/src/test/java/Time.java
diff --git a/minio-plus-spring-boot-starter/minio-plus-all-spring-boot-starter/pom.xml b/minio-plus-spring-boot-starter/minio-plus-all-spring-boot-starter/pom.xml
index bea28c0..f9f2f35 100644
--- a/minio-plus-spring-boot-starter/minio-plus-all-spring-boot-starter/pom.xml
+++ b/minio-plus-spring-boot-starter/minio-plus-all-spring-boot-starter/pom.xml
@@ -12,6 +12,12 @@
minio-plus-all-spring-boot-starter
jar
+
+ 8
+ 8
+ UTF-8
+
+
me.liuxp
@@ -19,7 +25,7 @@
me.liuxp
- minio-s3-api-official
+ s3-api-minio
diff --git a/minio-plus-spring-boot-starter/minio-plus-core-spring-boot-starter/pom.xml b/minio-plus-spring-boot-starter/minio-plus-core-spring-boot-starter/pom.xml
index 0538ea2..d971128 100644
--- a/minio-plus-spring-boot-starter/minio-plus-core-spring-boot-starter/pom.xml
+++ b/minio-plus-spring-boot-starter/minio-plus-core-spring-boot-starter/pom.xml
@@ -12,6 +12,12 @@
minio-plus-core-spring-boot-starter
jar
+
+ 8
+ 8
+ UTF-8
+
+
me.liuxp
@@ -19,7 +25,7 @@
me.liuxp
- minio-s3-api-official
+ s3-api-minio
diff --git a/minio-s3-api/minio-s3-api-custom/pom.xml b/minio-s3-api/minio-s3-api-custom/pom.xml
deleted file mode 100644
index 1aa8099..0000000
--- a/minio-s3-api/minio-s3-api-custom/pom.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
- minio-s3-api
- me.liuxp
- ${revision}
-
- 4.0.0
-
- minio-s3-api-custom
- jar
-
-
-
- cn.hutool
- hutool-all
-
-
- me.liuxp
- minio-s3-api-definition
-
-
- me.liuxp
- minio-plus-common
-
-
-
-
\ No newline at end of file
diff --git a/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/MinioS3ClientImpl.java b/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/MinioS3ClientImpl.java
deleted file mode 100644
index c3ccf69..0000000
--- a/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/MinioS3ClientImpl.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package org.liuxp.minioplus.s3.custom;
-
-import cn.hutool.http.HttpResponse;
-import cn.hutool.http.Method;
-import lombok.extern.slf4j.Slf4j;
-import org.liuxp.minioplus.common.config.MinioPlusProperties;
-import org.liuxp.minioplus.s3.def.ListParts;
-import org.liuxp.minioplus.s3.def.MinioS3Client;
-import org.springframework.stereotype.Repository;
-
-import javax.annotation.Resource;
-import java.io.InputStream;
-import java.time.ZonedDateTime;
-import java.util.List;
-
-@Slf4j
-@Repository
-public class MinioS3ClientImpl implements MinioS3Client {
-
- @Resource
- private MinioPlusProperties properties;
-
- @Override
- public Boolean bucketExists(String bucketName) {
-
- // 取得当前时间
- ZonedDateTime date = ZonedDateTime.now();
-
- // HTTP请求
- HttpResponse httpResponse = S3Request.request(properties.getKey(),properties.getSecret(),properties.getBackend()
- ,properties.getBackend()+"/"+bucketName,"","/"+bucketName, Method.HEAD.name(),date,0);
-
- return httpResponse.isOk();
-
- }
-
- @Override
- public void makeBucket(String bucketName) {
-
- }
-
- @Override
- public String createMultipartUpload(String bucketName, String objectName) {
- return null;
- }
-
- @Override
- public Boolean completeMultipartUpload(String bucketName, String objectName, String uploadId, List parts) {
- return null;
- }
-
- @Override
- public ListParts listParts(String bucketName, String objectName, Integer maxParts, String uploadId) {
-
- // 获取失败时,拼一个空的返回值
- return null;
- }
-
- @Override
- public String getUploadObjectUrl(String bucketName, String objectName, String uploadId, String partNumber) {
- return null;
- }
-
- @Override
- public String getDownloadUrl(String fileName, String contentType, String bucketName, String objectName) {
- return null;
- }
-
- @Override
- public String getPreviewUrl(String contentType, String bucketName, String objectName) {
- return null;
- }
-
- @Override
- public Boolean putObject(String bucketName, String objectName, InputStream stream, long size, String contentType) {
- return null;
- }
-
- @Override
- public byte[] getObject(String bucketName, String objectName) {
- return new byte[0];
- }
-
- @Override
- public void removeObject(String bucketName, String objectName) {
-
- }
-}
diff --git a/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/S3APIEnums.java b/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/S3APIEnums.java
deleted file mode 100644
index 36927d3..0000000
--- a/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/S3APIEnums.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.liuxp.minioplus.s3.custom;
-
-/**
- * S3 API 接口定义
- * @author contact@liuxp.me
- * @since 2024/06/07
- */
-public enum S3APIEnums {
-
- BUCKET_EXISTS("检查桶是否存在", "http://localhost:9000/document","/document","HEAD");
-
- private final String name;
- private final String url;
- private final String path;
- private final String method;
-
- S3APIEnums(String name,String url,String path,String method) {
- this.name = name;
- this.url = url;
- this.path = path;
- this.method = method;
- }
-
- public String getName() {
- return name;
- }
-
- public String getUrl() {
- return url;
- }
-
- public String getPath() {
- return path;
- }
-
- public String getMethod() {
- return method;
- }
-}
diff --git a/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/S3Request.java b/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/S3Request.java
deleted file mode 100644
index 51eb908..0000000
--- a/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/S3Request.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.liuxp.minioplus.s3.custom;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.http.HttpRequest;
-import cn.hutool.http.HttpResponse;
-import cn.hutool.http.HttpUtil;
-import cn.hutool.http.Method;
-
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-import java.time.ZonedDateTime;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class S3Request {
-
- static String ZERO_MD5_HASH = "1B2M2Y8AsgTpgAmY7PhCfg==";
- static String ZERO_SHA256_HASH = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
-
- public static HttpResponse request(String accessKey,String secretKey,String backend,String url, Object body, String path, String method, ZonedDateTime date,int length){
-
-
- String md5Hash = ZERO_MD5_HASH;
- if (body instanceof byte[]) {
- md5Hash = S3Signer.md5Hash((byte[]) body, length);
- }
-
- // 创建除Authorization外所有header
- Map> headers = new HashMap<>();
- headers.put("Host", CollUtil.newArrayList(backend.replace("http://","").replace("https://","")));
- headers.put("Accept-Encoding", CollUtil.newArrayList("identity"));
- headers.put("User-Agent", CollUtil.newArrayList("MinIO (Windows 10; amd64) minio-java/8.3.3"));
- headers.put("Content-MD5", CollUtil.newArrayList(md5Hash));
- headers.put("x-amz-content-sha256", CollUtil.newArrayList(ZERO_SHA256_HASH));
- headers.put("x-amz-date", CollUtil.newArrayList(date.format(Time.AMZ_DATE_FORMAT)));
-
- // 计算authorization
- String authorization = S3Signer.build(accessKey,secretKey,date,headers,"",method,path,ZERO_SHA256_HASH);
-
- HttpRequest httpRequest = HttpUtil.createRequest(Method.HEAD, url);
- httpRequest.header(headers,true);
- httpRequest.header("Authorization", authorization);
-
- return httpRequest.execute();
- }
-
-
-
-
-
-}
diff --git a/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/S3Signer.java b/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/S3Signer.java
deleted file mode 100644
index c7cd41e..0000000
--- a/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/S3Signer.java
+++ /dev/null
@@ -1,228 +0,0 @@
-package org.liuxp.minioplus.s3.custom;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.text.CharSequenceUtil;
-import cn.hutool.core.util.HexUtil;
-import lombok.extern.slf4j.Slf4j;
-
-import javax.crypto.Mac;
-import javax.crypto.spec.SecretKeySpec;
-import java.nio.charset.StandardCharsets;
-import java.security.InvalidKeyException;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.time.ZonedDateTime;
-import java.util.*;
-import java.util.stream.Collectors;
-
-@Slf4j
-public class S3Signer {
-
- private static final String serviceName = "s3";
- private static final String US_EAST_1 = "us-east-1";
- private static final Set IGNORED_HEADERS = CollUtil.set(true,"accept-encoding", "authorization", "content-type", "content-length", "user-agent");
-
- public static String build(String accessKey,String secretKey,ZonedDateTime date,Map> headers,String params,String method,String path,String zeroSha256Hash){
-
- try {
- // 计算scope
- String scope = buildScope(date);
-
- // 计算signedHeaders
- Map canonicalHeaders = buildCanonicalHeaders(headers);
-
- // 计算signedHeaders
- String signedHeaders = buildSignedHeaders(canonicalHeaders);
-
- // 计算canonicalQueryString
- String canonicalQueryString = buildCanonicalQueryString(params);
-
- // 计算buildCanonicalRequest
- String canonicalRequestHash = buildCanonicalRequest(canonicalHeaders,signedHeaders,canonicalQueryString,method,path,zeroSha256Hash);
-
- // 计算stringToSign
- String stringToSign = buildStringToSign(date,scope,canonicalRequestHash);
-
- // 计算signingKey
- byte[] signingKey = buildSigningKey(date,secretKey);
-
- // 计算signature
- String signature = buildSignature(signingKey,stringToSign);
-
- // 计算authorization
- String authorization = buildAuthorization(accessKey,scope,signedHeaders,signature);
-
- log.debug("httpRequest.headers()="+headers);
- log.debug("scope="+scope);
- log.debug("canonicalHeaders="+canonicalHeaders);
- log.debug("signedHeaders="+signedHeaders);
- log.debug("canonicalQueryString="+canonicalQueryString);
- log.debug("canonicalRequestHash="+canonicalRequestHash);
- log.debug("stringToSign="+stringToSign);
- log.debug("signature="+signature);
- log.debug("authorization="+authorization);
-
- return authorization;
- }catch (Exception e){
- throw new RuntimeException("S3签名失败", e);
- }
- }
-
- // 计算scope
- private static String buildScope(ZonedDateTime date){
- return date.format(Time.SIGNER_DATE_FORMAT) + "/" + US_EAST_1 + "/" + serviceName + "/aws4_request";
- }
-
- private static Map buildCanonicalHeaders(Map> headers){
- Map canonicalHeaders = new TreeMap<>();
-
- for (String name : headers.keySet()) {
- String signedHeader = name.toLowerCase(Locale.US);
- if (!IGNORED_HEADERS.contains(signedHeader)) {
- // Convert and add header values as per
- // https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
- // * Header having multiple values should be converted to comma separated values.
- // * Multi-spaced value of header should be trimmed to single spaced value.
- canonicalHeaders.put(
- signedHeader,
- headers.get(name).stream()
- .map(
- value -> {
- return value.replaceAll("( +)", " ");
- })
- .collect(Collectors.joining(",")));
- }
- }
- return canonicalHeaders;
- }
-
- /**
- * 计算signedHeaders
- * @return
- */
- private static String buildSignedHeaders(Map canonicalHeaders) {
- return CharSequenceUtil.join(";", canonicalHeaders.keySet());
- }
-
- private static String buildCanonicalQueryString(String params){
-
- if(CharSequenceUtil.isBlank(params)){
- return "";
- }
-
- return params;
-
- //TODO
-
-// MapUtil
-
- // Building a multimap which only order keys, ordering values is not performed
- // until MinIO server supports it.
-// Multimap signedQueryParams =
-// MultimapBuilder.treeKeys().arrayListValues().build();
-//
-// for (String queryParam : params.split("&")) {
-// String[] tokens = queryParam.split("=");
-// if (tokens.length > 1) {
-// signedQueryParams.put(tokens[0], tokens[1]);
-// } else {
-// signedQueryParams.put(tokens[0], "");
-// }
-// }
-//
-// return Joiner.on("&").withKeyValueSeparator("=").join(signedQueryParams.entries());
-
- }
-
- private static String buildCanonicalRequest(Map canonicalHeaders,String signedHeaders
- ,String canonicalQueryString,String method,String path,String zeroSha256Hash) throws NoSuchAlgorithmException {
-
- StringBuilder headers = new StringBuilder();
- for (String key : canonicalHeaders.keySet()) {
-
- headers.append(key);
- headers.append(":");
- headers.append(canonicalHeaders.get(key));
- headers.append("\n");
- }
-
- String canonicalRequest = method + "\n" + path + "\n" + canonicalQueryString + "\n"
- + headers + "\n" + signedHeaders + "\n" + zeroSha256Hash;
- log.debug("canonicalRequest="+canonicalRequest);
-
- byte[] data = canonicalRequest.getBytes(StandardCharsets.UTF_8);
- MessageDigest sha256Digest = MessageDigest.getInstance("SHA-256");
- sha256Digest.update(data, 0, data.length);
-
- return HexUtil.encodeHexStr(sha256Digest.digest());
- }
-
- /**
- * 计算stringToSign
- * @param date
- * @param scope
- * @param canonicalRequestHash
- * @return
- */
- private static String buildStringToSign(ZonedDateTime date,String scope,String canonicalRequestHash){
- return "AWS4-HMAC-SHA256" + "\n" + date.format(Time.AMZ_DATE_FORMAT) + "\n" + scope + "\n" + canonicalRequestHash;
- }
-
- /**
- * 计算signingKey
- * @param date
- * @return
- * @throws NoSuchAlgorithmException
- * @throws InvalidKeyException
- */
- private static byte[] buildSigningKey(ZonedDateTime date,String secretKey) throws NoSuchAlgorithmException, InvalidKeyException {
- String aws4SecretKey = "AWS4" + secretKey;
- byte[] dateKey = sumHmac(aws4SecretKey.getBytes(StandardCharsets.UTF_8), date.format(Time.SIGNER_DATE_FORMAT).getBytes(StandardCharsets.UTF_8));
- byte[] dateRegionKey = sumHmac(dateKey, US_EAST_1.getBytes(StandardCharsets.UTF_8));
- byte[] dateRegionServiceKey = sumHmac(dateRegionKey, serviceName.getBytes(StandardCharsets.UTF_8));
- return sumHmac(dateRegionServiceKey, "aws4_request".getBytes(StandardCharsets.UTF_8));
- }
-
- /**
- * 计算signature
- * @param signingKey
- * @param stringToSign
- * @return
- */
- private static String buildSignature(byte[] signingKey,String stringToSign) throws NoSuchAlgorithmException, InvalidKeyException {
- byte[] digest = sumHmac(signingKey, stringToSign.getBytes(StandardCharsets.UTF_8));
- return HexUtil.encodeHexStr(digest);
- }
-
- /**
- * 计算authorization
- * @param accessKey
- * @param scope
- * @param signedHeaders
- * @param signature
- * @return
- */
- private static String buildAuthorization(String accessKey,String scope,String signedHeaders,String signature){
- return "AWS4-HMAC-SHA256 Credential=" + accessKey + "/" + scope + ", SignedHeaders=" + signedHeaders + ", Signature=" + signature;
- }
-
- private static byte[] sumHmac(byte[] key, byte[] data) throws NoSuchAlgorithmException, InvalidKeyException {
- Mac mac = Mac.getInstance("HmacSHA256");
-
- mac.init(new SecretKeySpec(key, "HmacSHA256"));
- mac.update(data);
-
- return mac.doFinal();
- }
-
- public static String md5Hash(byte[] data, int length) {
- try {
- MessageDigest md5Digest = MessageDigest.getInstance("MD5");
- md5Digest.update(data, 0, length);
- return Base64.getEncoder().encodeToString(md5Digest.digest());
- }catch (Exception e){
- throw new RuntimeException("md5Hash失败", e);
- }
-
- }
-}
diff --git a/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/Time.java b/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/Time.java
deleted file mode 100644
index 15e97fc..0000000
--- a/minio-s3-api/minio-s3-api-custom/src/main/java/org/liuxp/minioplus/s3/custom/Time.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.liuxp.minioplus.s3.custom;/*
- * MinIO Java SDK for Amazon S3 Compatible Cloud Storage,
- * (C) 2020 MinIO, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.time.ZoneId;
-import java.time.format.DateTimeFormatter;
-import java.util.Locale;
-
-/** Time formatters for S3 APIs. */
-public class Time {
- public static final ZoneId UTC = ZoneId.of("Z");
-
- public static final DateTimeFormatter AMZ_DATE_FORMAT =
- DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmss'Z'", Locale.US).withZone(UTC);
-
- public static final DateTimeFormatter RESPONSE_DATE_FORMAT =
- DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH':'mm':'ss'.'SSS'Z'", Locale.US).withZone(UTC);
-
- // Formatted string is convertible to LocalDate only, not to LocalDateTime or ZonedDateTime.
- // Below example shows how to use this to get ZonedDateTime.
- // LocalDate.parse("20200225", SIGNER_DATE_FORMAT).atStartOfDay(UTC);
- public static final DateTimeFormatter SIGNER_DATE_FORMAT =
- DateTimeFormatter.ofPattern("yyyyMMdd", Locale.US).withZone(UTC);
-
- public static final DateTimeFormatter HTTP_HEADER_DATE_FORMAT =
- DateTimeFormatter.ofPattern("EEE',' dd MMM yyyy HH':'mm':'ss 'GMT'", Locale.US).withZone(UTC);
-
- public static final DateTimeFormatter EXPIRATION_DATE_FORMAT = RESPONSE_DATE_FORMAT;
-
- private Time() {}
-}
diff --git a/minio-s3-api/minio-s3-api-custom/src/main/resources/META-INF/spring.factories b/minio-s3-api/minio-s3-api-custom/src/main/resources/META-INF/spring.factories
deleted file mode 100644
index 0263741..0000000
--- a/minio-s3-api/minio-s3-api-custom/src/main/resources/META-INF/spring.factories
+++ /dev/null
@@ -1,2 +0,0 @@
-org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-org.liuxp.minioplus.s3.custom.MinioS3ClientImpl
\ No newline at end of file
diff --git a/minio-s3-api/minio-s3-api-custom/src/test/java/S3RequestTest.java b/minio-s3-api/minio-s3-api-custom/src/test/java/S3RequestTest.java
deleted file mode 100644
index ab81b65..0000000
--- a/minio-s3-api/minio-s3-api-custom/src/test/java/S3RequestTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-import cn.hutool.http.HttpResponse;
-import org.liuxp.minioplus.s3.custom.S3Request;
-
-import java.time.ZonedDateTime;
-
-public class S3RequestTest {
-
-
-// public static void main(String[] args){
-//
-// String accessKey = "minioadmin";
-// String secretKey = "minioadmin";
-// String backend = "http://localhost:9000";
-// String bucket = "document";
-//// String url = "http://localhost:9000/document1";
-//
-//// ZonedDateTime date = ZonedDateTime.parse("2024-05-31T16:31:54Z");
-// // 取得当前时间
-// ZonedDateTime date = ZonedDateTime.now();
-//
-// HttpResponse httpResponse = S3Request.request(accessKey,secretKey,backend,backend+"/"+bucket,"","/"+bucket,"HEAD",date);
-//
-// System.out.println("httpResponse.isOk()="+httpResponse.isOk());
-// System.out.println("httpResponse.getStatus()="+httpResponse.getStatus());
-// System.out.println("httpResponse.headers()="+httpResponse.headers());
-// System.out.println("httpResponse.body()="+httpResponse.body());
-//
-// }
-
- public static void main(String[] args){
-
- String accessKey = "minioadmin";
- String secretKey = "minioadmin";
- String backend = "http://localhost:9000";
- String bucket = "document223";
-// String url = "http://localhost:9000/document1";
-
-// ZonedDateTime date = ZonedDateTime.parse("2024-05-31T16:31:54Z");
- // 取得当前时间
- ZonedDateTime date = ZonedDateTime.now();
-
- byte[] EMPTY_BODY = new byte[] {};
-
- HttpResponse httpResponse = S3Request.request(accessKey,secretKey,backend,backend+"/"+bucket,EMPTY_BODY,"/"+bucket,"PUT",date,0);
-
- System.out.println("httpResponse.isOk()="+httpResponse.isOk());
- System.out.println("httpResponse.getStatus()="+httpResponse.getStatus());
- System.out.println("httpResponse.headers()="+httpResponse.headers());
- System.out.println("httpResponse.body()="+httpResponse.body());
-
- }
-
-
-}
diff --git a/pom.xml b/pom.xml
index 848c4eb..9015a2c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,8 +40,8 @@
minio-plus-common
minio-plus-core
minio-plus-extension
+ minio-plus-s3-api
minio-plus-spring-boot-starter
- minio-s3-api
@@ -49,7 +49,7 @@
1.8
1.8
3.0.1
- 0.1.4
+ 0.1.5
2.7.18
3.5.7
1.18.32
@@ -154,7 +154,7 @@
me.liuxp
- minio-s3-api-definition
+ s3-api-definition
${revision}
@@ -164,7 +164,7 @@
me.liuxp
- minio-s3-api-official
+ s3-api-minio
${revision}
@@ -305,10 +305,7 @@
dependency-check-maven
10.0.3
- true
- true
- true
- true
+ true