PJT

aws s3

  • simple storage service
  • 무한대 용량을 가진 인터넷 클라우드 외장하드
  • ec2 가 지금 서버 = 컴퓨터 본체라고 하면 여기에 파일을 저장하면 (하드 디스크) 컴퓨터가 고장 나거나 껐다 켜면 데이터가 날아갈 위험이 있음
  • 그래서 s3 = 저장소 = 본체하고 분리된 안전한 창고임 여기에 파일을 저장하면 고유한 주소 url을 줌
    • 파일(이미지)를 s3한테 던지고
    • s3가 주는 영수증 (파일 경로/ key)만 챙기면 됨

그래서 전체 흐름은

  • FE: 내 아바타 만들어줘 → 요청 → spring
  • spring → fast api : 아바타 하나 만들어서 s3에 올리고 나한테는 위치만 알려줘
  • fast api(ai) → aws s3 → spring
    • 이미지를 생성해서 메모리에 byte[] 형태로 들고 있음
    • 이걸 들고 바로 aws s3로 upload
    • s3가 ack 응답을 받으면, 파일 경로를 spring에게 응답
  • spring: 받은 경로만 db에 저장하면 끝남

이때 base64로 주고 받으면 안되나?

  • base 64로 변환하면 용량이 33% 늘어남
  • byte[] 바이너리 상태 그대로 s3에 꽂는 게 나음

results matching ""

    No results matching ""