From a3360878835e4606c968441e432b0c3d4bd921ae Mon Sep 17 00:00:00 2001
From: sean.zhou <sean.zhou@dji.com>
Date: Fri, 23 Sep 2022 18:04:07 +0800
Subject: [PATCH] V1.2.0

---
 src/main/java/com/dji/sample/component/oss/service/impl/AliyunOssServiceImpl.java |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/dji/sample/component/oss/service/impl/AliyunOssServiceImpl.java b/src/main/java/com/dji/sample/component/oss/service/impl/AliyunOssServiceImpl.java
index 4767aec..d709b07 100644
--- a/src/main/java/com/dji/sample/component/oss/service/impl/AliyunOssServiceImpl.java
+++ b/src/main/java/com/dji/sample/component/oss/service/impl/AliyunOssServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.OSSClientBuilder;
+import com.aliyun.oss.OSSException;
 import com.aliyun.oss.model.OSSObject;
 import com.aliyuncs.DefaultAcsClient;
 import com.aliyuncs.IAcsClient;
@@ -70,7 +71,10 @@
         }
         OSS ossClient = this.createClient();
         // First check if the object can be fetched.
-        ossClient.getObject(bucket, objectKey);
+        boolean isExist = ossClient.doesObjectExist(bucket, objectKey);
+        if (!isExist) {
+            throw new OSSException("The object does not exist.");
+        }
 
         return ossClient.generatePresignedUrl(bucket, objectKey,
                 new Date(System.currentTimeMillis() + configuration.getExpire() * 1000));
@@ -79,6 +83,10 @@
     @Override
     public Boolean deleteObject(String bucket, String objectKey) {
         OSS ossClient = this.createClient();
+        if (!ossClient.doesObjectExist(bucket, objectKey)) {
+            ossClient.shutdown();
+            return true;
+        }
         ossClient.deleteObject(bucket, objectKey);
         ossClient.shutdown();
         return true;
@@ -88,19 +96,13 @@
     public byte[] getObject(String bucket, String objectKey) {
         OSS ossClient = this.createClient();
         OSSObject object = ossClient.getObject(bucket, objectKey);
-        InputStream stream = object.getObjectContent();
 
-        try {
+        try (InputStream stream = object.getObjectContent()) {
             return stream.readAllBytes();
         } catch (IOException e) {
             e.printStackTrace();
         } finally {
-            try {
-                stream.close();
-                ossClient.shutdown();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
+            ossClient.shutdown();
         }
         return new byte[0];
     }

--
Gitblit v1.9.3