Browse Source

添加 head 请求判断对象是否存在

reghao 2 years ago
parent
commit
f7d7b1e3ab
1 changed files with 27 additions and 1 deletions
  1. 27 1
      oss-sdk/src/main/java/cn/reghao/oss/sdk/ObjectGetService.java

+ 27 - 1
oss-sdk/src/main/java/cn/reghao/oss/sdk/ObjectGetService.java

@@ -44,6 +44,28 @@ public class ObjectGetService {
         }
     }
 
+    public boolean headObject1(String sha256sum) {
+        try {
+            String api = String.format("%s?sha256sum=%s", endpoint, sha256sum);
+            HttpRequest httpRequest = HttpRequest.newBuilder(new URI(api))
+                    .version(HttpClient.Version.HTTP_1_1)
+                    .method("HEAD", HttpRequest.BodyPublishers.noBody())
+                    .build();
+
+            HttpResponse<String> httpResponse = httpClient.send(httpRequest, HttpResponse.BodyHandlers.ofString());
+            int statusCode = httpResponse.statusCode();
+            if (statusCode == 200) {
+                return true;
+            } else if (statusCode == 404) {
+                return false;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return false;
+    }
+
     public void getObject(String objectName) {
         try {
             String version = "1.0.0";
@@ -115,6 +137,10 @@ public class ObjectGetService {
         ObjectGetService objectGetService = new ObjectGetService(endpoint);
 
         String objectName = "image/p/ff4a21bd93f94d6c834330a6f139d9f8.webp";
-        objectGetService.getObject(objectName);
+        //objectGetService.getObject(objectName);
+
+        String sha256sum = "1234567890";
+        sha256sum = "f3622a93e86efec48c3dad1891f94823569e72dc81e149d4b7f521ab392995ef";
+        objectGetService.headObject1(sha256sum);
     }
 }