فهرست منبع

add getPresignedUrl

xiewj 5 ماه پیش
والد
کامیت
cd83796117

+ 4 - 0
4dkankan-utils-filestorage/src/main/java/com/fdkankan/filestorage/FileStorageTemplate.java

@@ -7,6 +7,7 @@ import org.springframework.stereotype.Service;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URL;
 import java.util.List;
 import java.util.Map;
 
@@ -108,4 +109,7 @@ public interface FileStorageTemplate {
     String getInternalEndpoint(String bucket ,String key);
     String getInternalEndpoint(String key);
 
+    public URL getPresignedUrl(String bucket, String key);
+    public URL getPresignedUrl( String key);
+
 }

+ 18 - 0
4dkankan-utils-filestorage/src/main/java/com/fdkankan/filestorage/aliyun/AliyunOssTemplate.java

@@ -5,6 +5,7 @@ import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson2.JSON;
+import com.aliyun.oss.HttpMethod;
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.ServiceException;
 import com.aliyun.oss.model.*;
@@ -24,6 +25,7 @@ import org.springframework.util.StringUtils;
 
 import java.io.*;
 import java.net.URI;
+import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
@@ -456,4 +458,20 @@ public class AliyunOssTemplate implements FileStorageTemplate {
             log.error("列举文件目录失败,key:" + sourcePath, e);
         }
     }
+
+    @Override
+    public URL getPresignedUrl(String bucket, String key) {
+        java.util.Date expiration = new java.util.Date();
+        long expTimeMillis = expiration.getTime();
+        expTimeMillis += 1000 * 60 * 60 * 8;
+        expiration.setTime(expTimeMillis);
+        GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucket, key);
+        generatePresignedUrlRequest.setMethod(HttpMethod.PUT);
+        generatePresignedUrlRequest.setExpiration(expiration);
+        return ossClient.generatePresignedUrl(generatePresignedUrlRequest);
+    }
+    @Override
+    public URL getPresignedUrl(String key) {
+        return getPresignedUrl(ossProperties.getBucket(), key);
+    }
 }

+ 17 - 0
4dkankan-utils-filestorage/src/main/java/com/fdkankan/filestorage/aws/AwsTemplate.java

@@ -8,6 +8,7 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson2.JSON;
 import com.amazonaws.AmazonServiceException;
+import com.amazonaws.HttpMethod;
 import com.amazonaws.SdkClientException;
 import com.amazonaws.services.s3.AmazonS3;
 import com.amazonaws.services.s3.model.*;
@@ -25,6 +26,7 @@ import org.springframework.util.ObjectUtils;
 
 import java.io.*;
 import java.net.URI;
+import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
@@ -527,4 +529,19 @@ public class AwsTemplate implements FileStorageTemplate {
             log.error("列举文件目录失败,key:" + sourcePath, e);
         }
     }
+
+    @Override
+    public URL getPresignedUrl(String bucket, String key) {
+        java.util.Date expiration = new java.util.Date();
+        long expTimeMillis = expiration.getTime();
+        expTimeMillis += 1000 * 60 * 60 * 8;
+        expiration.setTime(expTimeMillis);
+        GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucket, key)
+                .withMethod(HttpMethod.PUT).withExpiration(expiration);
+        return amazonS3Client.generatePresignedUrl(generatePresignedUrlRequest);
+    }
+    @Override
+    public URL getPresignedUrl(String key) {
+        return getPresignedUrl(awsProperties.getBucket(), key);
+    }
 }

+ 19 - 0
4dkankan-utils-filestorage/src/main/java/com/fdkankan/filestorage/cos/CosTemplate.java

@@ -10,6 +10,7 @@ import com.fdkankan.filestorage.InnerUtils;
 import com.fdkankan.filestorage.FileStorageTemplate;
 import com.fdkankan.filestorage.properties.CosProperties;
 import com.qcloud.cos.COSClient;
+import com.qcloud.cos.http.HttpMethodName;
 import com.qcloud.cos.model.*;
 import lombok.Getter;
 import lombok.SneakyThrows;
@@ -22,6 +23,7 @@ import org.springframework.util.ObjectUtils;
 
 import java.io.*;
 import java.net.URI;
+import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
@@ -477,4 +479,21 @@ public class CosTemplate implements FileStorageTemplate {
             log.error("列举文件目录失败,key:" + sourcePath, e);
         }
     }
+
+    @Override
+    public URL getPresignedUrl(String bucket, String key) {
+        java.util.Date expiration = new java.util.Date();
+        long expTimeMillis = expiration.getTime();
+        expTimeMillis += 1000 * 60 * 60 * 8;
+        expiration.setTime(expTimeMillis);
+        GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucket, key);
+        generatePresignedUrlRequest.setMethod(HttpMethodName.PUT);
+        generatePresignedUrlRequest.setExpiration(expiration);
+        return cosClient.generatePresignedUrl(generatePresignedUrlRequest);
+    }
+
+    @Override
+    public URL getPresignedUrl(String key) {
+        return getPresignedUrl(cosProperties.getBucket(), key);
+    }
 }

+ 28 - 0
4dkankan-utils-filestorage/src/main/java/com/fdkankan/filestorage/minio/MinioTemplate.java

@@ -5,6 +5,7 @@ import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson2.JSON;
+import com.aliyun.oss.HttpMethod;
 import com.amazonaws.services.s3.model.GetObjectRequest;
 import com.amazonaws.services.s3.model.S3Object;
 import com.amazonaws.services.s3.model.S3ObjectInputStream;
@@ -13,9 +14,12 @@ import com.fdkankan.filestorage.InnerUtils;
 import com.fdkankan.filestorage.properties.MinioProperties;
 
 import com.fdkankan.filestorage.FileStorageTemplate;
+import com.qcloud.cos.http.HttpMethodName;
 import com.qcloud.cos.model.COSObject;
+import com.qcloud.cos.model.GeneratePresignedUrlRequest;
 import io.minio.*;
 import io.minio.errors.*;
+import io.minio.http.Method;
 import io.minio.messages.Item;
 import lombok.Getter;
 import lombok.SneakyThrows;
@@ -27,8 +31,12 @@ import org.springframework.util.ObjectUtils;
 
 import java.io.*;
 import java.net.URI;
+import java.net.URL;
 import java.nio.charset.StandardCharsets;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 
 /**
  * 阿里云操作模版类, 简化常见操作
@@ -520,4 +528,24 @@ public class MinioTemplate implements FileStorageTemplate {
             log.error("列举文件目录失败,key:" + sourcePath, e);
         }
     }
+
+    @Override
+    public URL getPresignedUrl(String bucket, String key) {
+        GetPresignedObjectUrlArgs build = GetPresignedObjectUrlArgs.builder()
+                .method(Method.PUT)
+                .bucket(bucket)
+                .object(key)
+                .expiry(8, TimeUnit.HOURS) //过期时间
+                //.extraQueryParams(reqParams)
+                .build();
+        try {
+            return new URL(minioClient.getPresignedObjectUrl(build));
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+    @Override
+    public URL getPresignedUrl(String key) {
+        return getPresignedUrl(minioProperties.getBucket(), key);
+    }
 }

+ 2 - 2
4dkankan-utils-geo-query/src/main/java/com/fdkankan/geo/GeoQueryUtil.java

@@ -41,10 +41,10 @@ import java.nio.file.StandardCopyOption;
 @ConfigurationProperties(prefix = "geoquery")
 public class GeoQueryUtil {
     @Value("${geoquery.dataFilePath:/mnt/geoQuery/GeoJSON.json}")
-    private String dataFilePath;
+    private String dataFilePath="I:\\geoserver\\AreaCity-Query-Geometry\\GeoJSON-Polygon-ok_geo-240508-162233";
 
     @Value("${geoquery.saveWkbsFilePath:/mnt/geoQuery/GeoJSON.wkbs}")
-    private String saveWkbsFilePath;
+    private String saveWkbsFilePath="I:\\geoserver\\AreaCity-Query-Geometry\\GeoJSON.wkbs";
 
     @PostConstruct
     public void init() {

+ 2 - 2
4dkankan-utils-geo-query/src/main/java/com/fdkankan/geo/GeoTransformUtil.java

@@ -43,8 +43,8 @@ public class GeoTransformUtil {
     }
 
     public static void main(String[] args) {
-        ProjCoordinate coordinate1 = new ProjCoordinate(478041.3,3960170.3,83.25);
-        Double[] wgs84 = getWgs84(coordinate1, "4548");
+        ProjCoordinate coordinate1 = new ProjCoordinate(454938.2,2476768.45,46.8);
+        Double[] wgs84 = getWgs84(coordinate1, "4547");
         System.out.println("wgs84:"+wgs84[0]+","+wgs84[1]+","+wgs84[2]);
         ProjCoordinate coordinate2 = new ProjCoordinate(wgs84[0],wgs84[1],wgs84[2]);
         Double[] gcj02 = wgs84ToGcj02(coordinate2);

+ 53 - 0
4dkankan-utils-geo-tool/pom.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>4dkankan-utils</artifactId>
+        <groupId>com.fdkankan</groupId>
+        <version>3.0.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>4dkankan-utils-geo-query</artifactId>
+
+    <properties>
+        <fastjson.version>2.0.6</fastjson.version>
+        <hutool.version>5.8.6</hutool.version>
+        <proj4j.version>1.1.4</proj4j.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <version>1.2.11</version>
+        </dependency>
+        <!-- 阿里JSON解析器 -->
+        <dependency>
+            <groupId>com.alibaba.fastjson2</groupId>
+            <artifactId>fastjson2</artifactId>
+            <version>${fastjson.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>${hutool.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.locationtech.proj4j</groupId>
+            <artifactId>proj4j</artifactId>
+            <version>${proj4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-autoconfigure</artifactId>
+            <version>2.3.12.RELEASE</version>
+        </dependency>
+
+
+    </dependencies>
+
+</project>