@@ -77,12 +77,11 @@ public String getFilename() {
77
77
.contentType (MediaType .APPLICATION_OCTET_STREAM )
78
78
.body (resource );
79
79
}
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 {
82
81
S3ObjectInputStream file = s3Client .get (folderName + "/" + VideoName );
83
82
byte [] content = IOUtils .toByteArray (file );
84
83
85
- MultiValueMap <String ,Object > body = new LinkedMultiValueMap <>();
84
+ MultiValueMap <String , Object > body = new LinkedMultiValueMap <>();
86
85
body .add ("file" , new ByteArrayResource (content ) {
87
86
@ Override
88
87
public String getFilename () {
@@ -101,28 +100,28 @@ public String getFilename() {
101
100
102
101
ResponseEntity <byte []> response = restTemplate .postForEntity (url , requestEntity , byte [].class );
103
102
103
+ // Flask에서 반환된 이미지 배열을 받아옴
104
+ byte [] imageDataArray = response .getBody ();
105
+
104
106
// Flask에서 반환된 파일을 다시 클라이언트에게 반환
105
- ByteArrayResource resource = new ByteArrayResource (response .getBody ());
106
- //Flask에서 받은 이미지들 s3에 업로드
107
+ ByteArrayResource resource = new ByteArrayResource (imageDataArray );
108
+
109
+ // Flask에서 받은 이미지들을 S3에 업로드
107
110
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 [] >>() {});
109
112
110
113
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 );
119
115
120
116
// 이미지를 S3에 업로드
117
+ String imageName = i + 1 + "_" + "image.jpg" ; // 이미지 이름 설정 (예시로 "image.jpg"를 사용하였습니다)
118
+ String s3ImagePath = folderName + "/" + imageName ; // S3에 업로드할 경로 설정
119
+
121
120
ObjectMetadata metadata = new ObjectMetadata ();
122
121
metadata .setContentLength (imageData .length );
123
122
metadata .setContentType ("image/jpeg" ); // 이미지 타입에 따라 변경
124
123
125
- String s3ImagePath = folderName + "/" + imageName ;
124
+ // 이미지를 S3에 업로드
126
125
s3Client .upload (s3ImagePath , (MultipartFile ) new ByteArrayInputStream (imageData ), metadata );
127
126
}
128
127
@@ -131,6 +130,7 @@ public String getFilename() {
131
130
.body (resource );
132
131
}
133
132
133
+
134
134
//flask에 이미지, 동영상 보내기
135
135
public ResponseEntity <Resource > sendToFlaskWithImagesAndVideo (String folderName , VideoReq videoReq ) throws IOException {
136
136
// 동영상 파일 가져오기
0 commit comments