4040import org .clokey .member .entity .Member ;
4141import org .clokey .member .enums .Visibility ;
4242import org .clokey .report .enums .TargetType ;
43+ import org .clokey .util .PresignedUrlResult ;
4344import org .clokey .util .StorageUtil ;
4445import org .springframework .context .ApplicationEventPublisher ;
4546import org .springframework .stereotype .Service ;
@@ -105,7 +106,8 @@ public HistoryCreateResponse createHistory(HistoryCreateRequest request) {
105106
106107 for (HistoryCreateRequest .Payload payload : request .payloads ()) {
107108 final HistoryImage historyImage =
108- HistoryImage .createHistoryImage (payload .imageUrl (), history );
109+ HistoryImage .createHistoryImage (
110+ storageUtil .toPublicObjectUrl (payload .imageUrl ()), history );
109111 images .add (historyImage );
110112
111113 if (payload .clothTags () != null && !payload .clothTags ().isEmpty ()) {
@@ -164,18 +166,21 @@ public void updateHistory(Long historyId, HistoryUpdateRequest request) {
164166 existingImages .stream ()
165167 .collect (
166168 Collectors .toMap (
167- HistoryImage :: getImageUrl ,
169+ image -> storageUtil . toPublicObjectUrl ( image . getImageUrl ()) ,
168170 Function .identity (),
169171 (left , right ) -> left ));
170172
171173 Set <String > requestedImageUrls =
172174 request .payloads ().stream ()
173- .map (HistoryUpdateRequest . Payload :: imageUrl )
175+ .map (payload -> storageUtil . toPublicObjectUrl ( payload . imageUrl ()) )
174176 .collect (Collectors .toSet ());
175177
176178 List <HistoryImage > imagesToDelete =
177179 existingImages .stream ()
178- .filter (image -> !requestedImageUrls .contains (image .getImageUrl ()))
180+ .filter (
181+ image ->
182+ !requestedImageUrls .contains (
183+ storageUtil .toPublicObjectUrl (image .getImageUrl ())))
179184 .toList ();
180185
181186 if (!imagesToDelete .isEmpty ()) {
@@ -186,7 +191,10 @@ public void updateHistory(Long historyId, HistoryUpdateRequest request) {
186191
187192 Set <Long > keptImageIds =
188193 existingImages .stream ()
189- .filter (image -> requestedImageUrls .contains (image .getImageUrl ()))
194+ .filter (
195+ image ->
196+ requestedImageUrls .contains (
197+ storageUtil .toPublicObjectUrl (image .getImageUrl ())))
190198 .map (HistoryImage ::getId )
191199 .collect (Collectors .toSet ());
192200
@@ -198,12 +206,13 @@ public void updateHistory(Long historyId, HistoryUpdateRequest request) {
198206 List <HistoryClothTag > clothTags = new ArrayList <>();
199207
200208 for (HistoryUpdateRequest .Payload payload : request .payloads ()) {
209+ String normalizedImageUrl = storageUtil .toPublicObjectUrl (payload .imageUrl ());
201210 final HistoryImage historyImage =
202211 existingImageMap .getOrDefault (
203- payload . imageUrl () ,
204- HistoryImage .createHistoryImage (payload . imageUrl () , history ));
212+ normalizedImageUrl ,
213+ HistoryImage .createHistoryImage (normalizedImageUrl , history ));
205214
206- if (!existingImageMap .containsKey (payload . imageUrl () )) {
215+ if (!existingImageMap .containsKey (normalizedImageUrl )) {
207216 newImages .add (historyImage );
208217 }
209218
@@ -402,18 +411,19 @@ public HistoryImagesPresignedUrlResponse getHistoryUploadPresignedUrls(
402411 HistoryImagesUploadRequest request ) {
403412 final Member currentMember = memberUtil .getCurrentMember ();
404413
405- List <String > presignedUrls =
414+ List <PresignedUrlResult > presignedUrlResults =
406415 request .payloads ().stream ()
407416 .map (
408417 payload ->
409418 storageUtil .createPresignedUrl (
410419 ImageType .HISTORY_IMAGE ,
411420 currentMember .getId (),
412- payload .fileExtension (),
413- payload .md5Hashes ()))
421+ payload .fileExtension ()))
414422 .toList ();
415423
416- return HistoryImagesPresignedUrlResponse .of (presignedUrls );
424+ return HistoryImagesPresignedUrlResponse .of (
425+ presignedUrlResults .stream ().map (PresignedUrlResult ::uploadUrl ).toList (),
426+ presignedUrlResults .stream ().map (PresignedUrlResult ::objectUrl ).toList ());
417427 }
418428
419429 private HistoryImage getHistoryImageById (Long historyImageId ) {
0 commit comments