S3 버킷의 객체를 삭제하는 방법은 AmazonS3 의존성을 이용해 안에 있는 메서드로 지워주면 된다.
나는 현재 이런 방식으로 저장하고 있는데...
{
"0": "https://amazonawss3.com/UUID",
"1": "https://amazonawss3.com/UUID"
}
여기서 value의 uuid(객체 이름)만 가져와서 삭제하라고 하면 된다.
@Override
public void deleteImageUrlList(Map<Integer, Object> originalImageUrl) {
for(int i = 0; i < originalImageUrl.size(); i++) {
String[] urlSplit = originalImageUrl.get(i).toString().split("/");
String objectName = urlSplit[urlSplit.length - 1];
amazonS3.deleteObject(bucket, objectName);
}
}
value의 url 슬래쉬 기준으로 split 하고 마지막에 있는 것을 객체 이름으로 설정하고 deleteObject 메서드를 사용해주면 된다.
UUID에는 슬래쉬가 들어가지 않아서 이렇게 하면된다 만약에 다른 걸로 한다면 .com/ 기준으로 스플릿할듯
bucket에는 현재 사용중인 버킷 이름을 넣어주면 된다.
그러면 끝~~~~
'TIL' 카테고리의 다른 글
TIL 2024-01-12 TransactionlEventListener 와 비동기 메서드 (0) | 2024.01.12 |
---|---|
TIL 2024-01-11 NoSQL RDBMS 차이 (0) | 2024.01.12 |
TIL 2024-01-09 쿼리최적화란 (0) | 2024.01.10 |
TIL 2024-01-08 스프링 이미지 다중 업로드 구현 (0) | 2024.01.09 |
TIL 2024-01-07 엔티티에서 Dto 종속성을 갖게 하는 게 맞을까? (2) | 2024.01.07 |