@Column(nullable = false)
@ElementCollection
private List<String> imageNames;
ํด๋๋ช
์ด postId์์ postId + UUID.randomUUID().substring(19) ์ผ๋ก ๋ฐ๊พธ๋ฉด์ ํด๋๋ช
์ ์ ์ฅํ๋ ๊ฒ์ด ์ข๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
ํด๋๋ช ์ ์ ์ฅํ๋ฉด ๊ฒ์๊ธ์ ์ญ์ ํ ๋ ํด๋๋ฅผ ํต์ฑ๋ก ์ญ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
@Entity
@Getter
@NoArgsConstructor
public class Image extends Timestamped {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private Long id;
@Column(nullable = false)
private String imageName;
@Column(nullable = false)
private String folderName;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "post_id")
private Post post;
public Image(String imageName, String folderName, Post post) {
this.imageName = imageName;
this.folderName = folderName;
this.post = post;
}
}

public void deleteFolder(String requestFolderName) {
ObjectListing objectListing = amazonS3Client.listObjects(s3Bucket, "images/" + requestFolderName);
List<DeleteObjectsRequest.KeyVersion> keyVersions = new ArrayList<>();
for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) {
keyVersions.add(new DeleteObjectsRequest.KeyVersion(objectSummary.getKey()));
}
if (!keyVersions.isEmpty()) {
DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(s3Bucket).withKeys(keyVersions);
amazonS3Client.deleteObjects(deleteObjectsRequest);
}
}
์ด๋ ๊ฒ ํด๋๋ฅผ ํต์ฑ๋ก ์ญ์ ํ ์ ์๋ค. ํด๋๋ช ์ ์ ์ฅํ๋๊น ๋๋ฌด ํธํ๋ค.. ์ง์์ ์ด๋ ๊ฒ ๋ง๋ค๊ป..