S3 Image Server 설계(1)

유형찬·2022년 8월 20일
0

GDSC_BLOG_PROJECT

목록 보기
1/5

설계

요구 사항

  • When Blog.Inner.Image is Inserted
  • Not Base64 Encoding to inner Data , necessary things are URL
  • Drag And Drop Image to Post
    • Client Send image data , Server will response ImageURL
  • But How to remove this.inner.imageFile in AWS S3 when this.Post is removed

아이디어

첫 번째 생각

Post Id 와 Image 를 담아서 보내면 되지 않을 까? 포스트에 대한 이미지 일 대 다 테이블을 만들면 되지 않을 까?

  • 포스트를 업로드 하지 않은 상태라 PostId가 없음

두 번째 생각

Inner Image를 업로드 할 때 마다 Client에서 업로드 URL을 저장 했다가 List로 서버에 보내줘서 저장하면 되지 않을 까?

  • 이미지 업로드만 하고 작성 페이지를 나가면..?

세 번째 생각

일단 Image Table을 생성

public ImageUrls{

	String id;
	String url;
	Post post;
}

처음 업로드 때는 id , url 값만 넣는다.

Client에서 image를 업로드를 할 때 imageUrls Table 의 Id , url 값을 return 받고 List로 imageUrls Table의 Id 값을 가지고 있는다.

최종적으로 Post Upload를 할 때 imageUrls Table에 Post를 넣는다.

추후 Batch , Scheduler 등으로 Post post = Null 인 ImageFile을 Aws에서 삭제한다. 주로 일주일 또는 한 달 주기?

  • 여기서 생각나는 문제점, 삭제 중일 때 누군가 블로그 글에 이미지를 넣던 중이라면? 그 이미지 또한 삭제가 된다.
    • 해결법 : 사용자가 극히 적은 새벽 4시 ~ 5시를 이용한다.
profile
rocoli에요

0개의 댓글