diff --git a/src/main/java/com/capic/server/domain/video/service/VideoService.java b/src/main/java/com/capic/server/domain/video/service/VideoService.java index 734d501..72cb0d8 100644 --- a/src/main/java/com/capic/server/domain/video/service/VideoService.java +++ b/src/main/java/com/capic/server/domain/video/service/VideoService.java @@ -81,7 +81,7 @@ public ResponseEntity sendToFlaskWithVideo(String folderName, String V byte[] content = IOUtils.toByteArray(file); MultiValueMap body = new LinkedMultiValueMap<>(); - body.add("file", new ByteArrayResource(content) { + body.add("video", new ByteArrayResource(content) { @Override public String getFilename() { return VideoName; // 파일 이름 지정 @@ -95,7 +95,7 @@ public String getFilename() { RestTemplate restTemplate = new RestTemplate(); - String url = "http://13.124.110.226:5000/video"; + String url = "http://127.0.0.1:5000/target"; ResponseEntity response = restTemplate.postForEntity(url, requestEntity, byte[].class); @@ -107,22 +107,43 @@ public String getFilename() { // Flask에서 받은 이미지들을 S3에 업로드 ObjectMapper objectMapper = new ObjectMapper(); - List imageList = objectMapper.readValue(imageDataArray, new TypeReference>() {}); + List> identifiedFaces = objectMapper.readValue(imageDataArray, new TypeReference>>() {}); + + for (int personIndex = 0; personIndex < identifiedFaces.size(); personIndex++) { + List personImages = identifiedFaces.get(personIndex); + String personFolder = "person" + (personIndex + 1); - for (int i = 0; i < imageList.size(); i++) { - byte[] imageData = imageList.get(i); + for (int imageIndex = 0; imageIndex < personImages.size(); imageIndex++) { + byte[] imageData = personImages.get(imageIndex); - // 이미지를 S3에 업로드 - String imageName = i + 1 + "_" + "image.jpg"; // 이미지 이름 설정 (예시로 "image.jpg"를 사용하였습니다) - String s3ImagePath = folderName + "/" + imageName; // S3에 업로드할 경로 설정 + // 이미지를 S3에 업로드 + String imageName = (imageIndex + 1) + ".jpg"; + String s3ImagePath = folderName + "/" + personFolder + "/" + imageName; - ObjectMetadata metadata = new ObjectMetadata(); - metadata.setContentLength(imageData.length); - metadata.setContentType("image/jpeg"); // 이미지 타입에 따라 변경 + ObjectMetadata metadata = new ObjectMetadata(); + metadata.setContentLength(imageData.length); + metadata.setContentType("image/jpeg"); // 이미지 타입에 따라 변경 - // 이미지를 S3에 업로드 - s3Client.upload(s3ImagePath, (MultipartFile) new ByteArrayInputStream(imageData), metadata); + // 이미지를 S3에 업로드 + s3Client.upload(s3ImagePath, (MultipartFile) new ByteArrayInputStream(imageData), metadata); + } } +// List imageList = objectMapper.readValue(imageDataArray, new TypeReference>() {}); +// +// for (int i = 0; i < imageList.size(); i++) { +// byte[] imageData = imageList.get(i); +// +// // 이미지를 S3에 업로드 +// String imageName = i + 1 + "_" + "image.jpg"; // 이미지 이름 설정 (예시로 "image.jpg"를 사용하였습니다) +// String s3ImagePath = folderName + "/" + imageName; // S3에 업로드할 경로 설정 +// +// ObjectMetadata metadata = new ObjectMetadata(); +// metadata.setContentLength(imageData.length); +// metadata.setContentType("image/jpeg"); // 이미지 타입에 따라 변경 +// +// // 이미지를 S3에 업로드 +// s3Client.upload(s3ImagePath, (MultipartFile) new ByteArrayInputStream(imageData), metadata); +// } return ResponseEntity.ok() .contentType(MediaType.APPLICATION_OCTET_STREAM) @@ -186,7 +207,7 @@ public String sendToFlaskWithImagesAndVideo(String folderName, VideoReq videoReq // return VideoRes.of(folderName, videoReq.videoName(), null); } - //flask에 이미지, 동영상 보내기 + //flask에 이미지, 동영상 보내기 test public ResponseEntity sendToFlaskWithImagesAndVideoTest(String folderName, VideoReq videoReq) throws IOException{ // 동영상 파일 가져오기 S3ObjectInputStream videoFile = s3Client.get(folderName + "/" + videoReq.videoName());