Skip to content

Commit d75e186

Browse files
committed
#2 fix : 이미지 url 배열에서 이미지 바이트 배열로 수정
1 parent c994ef9 commit d75e186

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

src/main/java/com/capic/server/domain/video/service/VideoService.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,11 @@ public String getFilename() {
7777
.contentType(MediaType.APPLICATION_OCTET_STREAM)
7878
.body(resource);
7979
}
80-
//flask에 동영상 전송, 이미지들을 배열로 받아 s3에 업로드
81-
public ResponseEntity<Resource> sendToFlaskWithVideo(String folderName,String VideoName) throws IOException{
80+
public ResponseEntity<Resource> sendToFlaskWithVideo(String folderName, String VideoName) throws IOException {
8281
S3ObjectInputStream file = s3Client.get(folderName + "/" + VideoName);
8382
byte[] content = IOUtils.toByteArray(file);
8483

85-
MultiValueMap<String,Object> body = new LinkedMultiValueMap<>();
84+
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
8685
body.add("file", new ByteArrayResource(content) {
8786
@Override
8887
public String getFilename() {
@@ -101,28 +100,28 @@ public String getFilename() {
101100

102101
ResponseEntity<byte[]> response = restTemplate.postForEntity(url, requestEntity, byte[].class);
103102

103+
// Flask에서 반환된 이미지 배열을 받아옴
104+
byte[] imageDataArray = response.getBody();
105+
104106
// Flask에서 반환된 파일을 다시 클라이언트에게 반환
105-
ByteArrayResource resource = new ByteArrayResource(response.getBody());
106-
//Flask에서 받은 이미지들 s3에 업로드
107+
ByteArrayResource resource = new ByteArrayResource(imageDataArray);
108+
109+
// Flask에서 받은 이미지들을 S3에 업로드
107110
ObjectMapper objectMapper = new ObjectMapper();
108-
List<String> imageList = objectMapper.readValue(response.getBody(), new TypeReference<List<String>>() {});
111+
List<byte[]> imageList = objectMapper.readValue(imageDataArray, new TypeReference<List<byte[]>>() {});
109112

110113
for (int i = 0; i < imageList.size(); i++) {
111-
String imageUrl = imageList.get(i);
112-
113-
URL imageURL = new URL(imageUrl);
114-
String imageName = i + 1 + "_" + imageURL.getPath().substring(imageURL.getPath().lastIndexOf("/") + 1);
115-
116-
// 이미지 다운로드
117-
InputStream imageStream = imageURL.openStream();
118-
byte[] imageData = IOUtils.toByteArray(imageStream);
114+
byte[] imageData = imageList.get(i);
119115

120116
// 이미지를 S3에 업로드
117+
String imageName = i + 1 + "_" + "image.jpg"; // 이미지 이름 설정 (예시로 "image.jpg"를 사용하였습니다)
118+
String s3ImagePath = folderName + "/" + imageName; // S3에 업로드할 경로 설정
119+
121120
ObjectMetadata metadata = new ObjectMetadata();
122121
metadata.setContentLength(imageData.length);
123122
metadata.setContentType("image/jpeg"); // 이미지 타입에 따라 변경
124123

125-
String s3ImagePath = folderName + "/" + imageName;
124+
// 이미지를 S3에 업로드
126125
s3Client.upload(s3ImagePath, (MultipartFile) new ByteArrayInputStream(imageData), metadata);
127126
}
128127

@@ -131,6 +130,7 @@ public String getFilename() {
131130
.body(resource);
132131
}
133132

133+
134134
//flask에 이미지, 동영상 보내기
135135
public ResponseEntity<Resource> sendToFlaskWithImagesAndVideo(String folderName, VideoReq videoReq) throws IOException{
136136
// 동영상 파일 가져오기

0 commit comments

Comments
 (0)