architrave-dev / frontend2

architrave팀의 frontend repository입니다.
0 stars 0 forks source link

이미지 삭제 기능 #56

Closed youngdong82 closed 18 hours ago

youngdong82 commented 4 weeks ago

현재 이미지는 업로드만 되고 삭제되지 않는다.

youngdong82 commented 5 days ago

기존 url이 있고.

USER의 이미지 업로드

1-1. originUrl값 localUrl로 변경

USER의 확인 버튼 클릭

2-1.
localUrl을 S3 업로드하고
새로 받은 ImageUrl 리턴

2-2.
새로 받은 ImageUrl 을 넣어서
UPDATE

2-3.
기존 url 삭제

* 2-1, 2-3에서 문제가 발생 시 ErrorCode.AWS가 발생하고 이후 코드진행이 멈춘다.
* 2-2에서 문제가 발생한다면 서버에서 보내주는 ErrorCode가 발생하고 코드진행이 멈춘다.
* 롤백은 어떻게 할 것인가?
* 2-1 성공 후, 2-2에서 ATX 에러 발생 시 재시도 과정에서 중복적인 업로드가 진행된다.
youngdong82 commented 5 days ago

현재 관리되고 있는 이미지 네이밍, 파일 관리 체계가 개선되어야 한다. 이 상태로는 현재 사용되고 있는 이미지인지, 오류로 인해 업로드는 되었지만 사용되고 있지 않은 이미지인지 알 수 없다. seamless 함이 서비스의 생명인데 이와 같이 관리가 불가능한 상태는 용납할 수 없다. 더불어 지금 고치지 않고 실고객 10명이 100개의 이미지만 올려도, 절대 이걸 정리할 수 없다. 각 이미지마다 사용처를 앞에 붙여야 할듯하다. 이미지 이름은 지금처럼 그냥 Date.now().확장자 로 해도 무방할듯.

머 이런식으로??

youngdong82 commented 5 days ago

관련 데이터 삭제되면 이미지 삭제

이건 프론트에서 수행하기 어렵다. 관련된 것이 함께 사라지는 일이 굉장히 많기 때문이다. 예를 들어, work를 없애면, 관련된 workDetail들이 사라진다. 백엔드에서 해야하지 않을까 싶음

youngdong82 commented 4 days ago

롤백 방법

  1. FE에서 새 이미지와 기존 이미지 URL을 서버로 함께 보냄.
  2. BE는
    • update 성공: 기존 이미지 삭제.
    • update 실패: 새 이미지 삭제.

UpdateImgDto 생성해야하나?

youngdong82 commented 19 hours ago

orphan 객체를 아예 안생기게 만들 수는 없는 것 같아. 이를 정리하는 로직을 만들 수 있을까?