Просмотр исходного кода

make ReadOssTestDataHandler work

dengjia 1 неделя назад
Родитель
Сommit
73e9761c1b

+ 22 - 3
read-oss-test-data/src/main/java/com/yaoyicloud/ai/pipeline/fc/ReadOssTestDataHandler.java

@@ -1,6 +1,12 @@
 package com.yaoyicloud.ai.pipeline.fc;
 package com.yaoyicloud.ai.pipeline.fc;
 
 
-import java.util.List;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.stream.Collectors;
 
 
 import com.aliyun.fc.runtime.Context;
 import com.aliyun.fc.runtime.Context;
 import com.aliyun.fc.runtime.PojoRequestHandler;
 import com.aliyun.fc.runtime.PojoRequestHandler;
@@ -9,8 +15,21 @@ public class ReadOssTestDataHandler implements PojoRequestHandler<ReadOssTestDat
 
 
 	@Override
 	@Override
 	public OssTestDataSet handleRequest(ReadOssTestDataRequest request, Context context) {
 	public OssTestDataSet handleRequest(ReadOssTestDataRequest request, Context context) {
-		System.out.println("Listing the files with prefix " + request.getOssPrefix());
-		return new OssTestDataSet(List.of(request.getOssPrefix() + "1.jpg", request.getOssPrefix() + "2.jpg"));
+		try {
+			InputStream inputStream = getClass().getClassLoader().getResourceAsStream("mountPath.txt");
+			BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
+			String line = reader.readLine();
+			if (line == null || line.isBlank()) {
+				throw new RuntimeException("mountPath file not found");
+			}
+			System.out.println("Listing the files with prefix " + line);
+			return new OssTestDataSet(
+				Files.find(Paths.get(line, request.getOssPrefix()),Integer.MAX_VALUE, (p, attr) -> attr.isRegularFile())
+					.map(p -> p.toString()).collect(Collectors.toList()));
+		} catch (IOException e) {
+			e.printStackTrace();
+			throw new RuntimeException(e);
+		}
 	}
 	}
 
 
 }
 }

+ 1 - 0
read-oss-test-data/src/main/resources/mountPath.txt

@@ -0,0 +1 @@
+/mnt/yyc-algo-test

+ 2 - 2
read-oss-test-data/src/test/java/com/yaoyicloud/ai/pipeline/fc/ReadOssTestDataHandlerTest.java

@@ -28,12 +28,12 @@ public class ReadOssTestDataHandlerTest {
 
 
     @Test
     @Test
     public void testHandleRequest() {
     public void testHandleRequest() {
-        ReadOssTestDataRequest request = new ReadOssTestDataRequest("test/");
+        ReadOssTestDataRequest request = new ReadOssTestDataRequest("");
 
 
         OssTestDataSet response = handler.handleRequest(request, context);
         OssTestDataSet response = handler.handleRequest(request, context);
 
 
         assertNotNull(response);
         assertNotNull(response);
-        assertEquals(List.of("test/1.jpg", "test/2.jpg"), response.getOssFileList());
+        assertEquals(List.of("src/test/resources/mountPath.txt"), response.getOssFileList());
     }
     }
 
 
 }
 }

+ 1 - 0
read-oss-test-data/src/test/resources/mountPath.txt

@@ -0,0 +1 @@
+src/test/resources

+ 1 - 1
testdata-pipeline.yaml

@@ -55,7 +55,7 @@ resources:
         mountPoints:
         mountPoints:
           - endpoint: http://oss-cn-beijing.aliyuncs.com
           - endpoint: http://oss-cn-beijing.aliyuncs.com
             bucketName: yyc-algo-test
             bucketName: yyc-algo-test
-            mountDir: /mnt/yyc-algo-test
+            mountDir: ${file('read-oss-test-data/src/main/resources/mountPath.txt')}
             readOnly: true
             readOnly: true
       functionName: ReadOssTestDataHandler
       functionName: ReadOssTestDataHandler
       runtime: java11
       runtime: java11