Bladeren bron

回滚方法

tianboguang 2 jaren geleden
bovenliggende
commit
ea3750bc53

+ 5 - 0
4dkankan-utils-fyun-local/src/main/java/com/fdkankan/fyun/local/LocalFileService.java

@@ -124,6 +124,11 @@ public class LocalFileService extends AbstractFYunFileService {
     }
 
     @Override
+    public String getFileContent(String bucketName, String remoteFilePath) {
+        return FileUtil.readUtf8String(getOssPath(bucketName, remoteFilePath));
+    }
+
+    @Override
     public boolean fileExist(String bucket, String objectName) {
         return FileUtil.exist(getOssPath(bucket, objectName));
     }

+ 23 - 0
4dkankan-utils-fyun-oss/src/main/java/com/fdkankan/fyun/oss/OssFileService.java

@@ -200,6 +200,29 @@ public class OssFileService extends AbstractFYunFileService {
     }
 
     @Override
+    public String getFileContent(String bucketName, String remoteFilePath) {
+        try {
+            OSSObject ossObject = ossClient.getObject(bucketName, remoteFilePath);
+            InputStream objectContent = ossObject.getObjectContent();
+            StringBuilder contentJson = new StringBuilder();
+            try (BufferedReader reader = new BufferedReader(new InputStreamReader(objectContent))) {
+                while (true) {
+                    String line = reader.readLine();
+                    if (line == null) break;
+                    contentJson.append(line);
+                }
+            } catch (IOException e) {
+                log.error("读取scene.json文件流失败", e);
+            }
+            ossObject.close();
+            return contentJson.toString();
+        } catch (Exception e) {
+            log.error("获取文件内容失败:{}", remoteFilePath);
+            return null;
+        }
+    }
+
+    @Override
     public boolean fileExist(String bucket, String objectName) {
         try {
             return ossClient.doesObjectExist(bucket, objectName);

+ 5 - 0
4dkankan-utils-fyun-parent/src/main/java/com/fdkankan/fyun/face/AbstractFYunFileService.java

@@ -91,6 +91,11 @@ public abstract class AbstractFYunFileService implements FYunFileServiceInterfac
     }
 
     @Override
+    public String getFileContent(String remoteFilePath) {
+        return getFileContent(fYunFileConfig.getBucket(), remoteFilePath);
+    }
+
+    @Override
     public boolean fileExist(String objectName) {
         return fileExist(fYunFileConfig.getBucket(), objectName);
     }

+ 19 - 0
4dkankan-utils-fyun-parent/src/main/java/com/fdkankan/fyun/face/FYunFileServiceInterface.java

@@ -246,6 +246,25 @@ public interface FYunFileServiceInterface {
      **/
     void copyFilesBetweenBucket(String targetBucketName, Map<String, String> pathMap) ;
 
+
+    /**
+     * 获取文件内容,文件内容过大时,会有造成内存溢出的风险,慎用
+     *
+     * @param bucketName
+     * @param remoteFilePath
+     * @return
+     */
+    String getFileContent(String bucketName, String remoteFilePath) ;
+
+    /**
+     * 获取默认bucket内容,文件内容过大时,会有造成内存溢出的风险,慎用
+     *
+     * @param remoteFilePath
+     * @return
+     */
+    String getFileContent(String remoteFilePath) ;
+
+
     /**
      * 判断文件是否存在
      *

+ 24 - 0
4dkankan-utils-fyun-s3/src/main/java/com/fdkankan/fyun/s3/S3FileService.java

@@ -226,6 +226,30 @@ public class S3FileService extends AbstractFYunFileService {
     }
 
     @Override
+    public String getFileContent(String bucketName, String remoteFilePath){
+        try {
+			GetObjectRequest request  = new GetObjectRequest(bucketName,remoteFilePath);
+			S3Object object = s3.getObject(request);
+			S3ObjectInputStream inputStream = object.getObjectContent();
+			StringBuilder content = new StringBuilder();
+			try(BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))){
+				while (true) {
+					String line = reader.readLine();
+					if (line == null) break;
+					content.append(line);
+				}
+			} catch (IOException e) {
+				log.error("读取aws文件流失败", e);
+			}
+            object.close();
+			return content.toString();
+        } catch (Exception e) {
+            log.error("获取文件内容失败:{}", remoteFilePath);
+            return null;
+        }
+    }
+
+    @Override
     public boolean fileExist(String bucket, String objectName) {
         try {
             return s3.doesObjectExist(bucket, objectName);