Skip to content

feat: 파일 삭제 및 내용 조회 기능 추가 #43

@1anminJ

Description

@1anminJ

📋 개요

기존 파일 관리 기능에 S3와 DB에서 파일을 완전히 삭제하는 기능과, 업로드된 파일의 내용을 조회하는 기능을 추가합니다.


📝 상세 설명

As-Is (문제 상황)

  • 파일 생성, 수정, 목록 조회 기능만 존재했습니다.
  • 사용자가 더 이상 필요 없는 파일을 삭제하거나, 업로드된 파일의 내용을 에디터 등으로 불러오기 위해 확인할 방법이 없었습니다.

To-Be (해결 방안)

  • 파일 내용 조회:
    • 사용자가 본인 소유의 파일(fileUUID)을 요청하면, 서버는 S3에서 해당 파일의 내용을 읽어와 텍스트로 반환하는 API를 구현합니다.
  • 파일 삭제:
    • 사용자가 본인 소유의 파일(fileUUID)에 대한 삭제를 요청하면, 서버는 S3 버킷에서 실제 파일을 삭제하고, 데이터베이스의 파일 메타데이터(CodeFile 레코드)도 함께 삭제하는 API를 구현합니다.
  • 권한 검사:
    • 모든 신규 기능에는 요청을 보낸 사용자가 파일의 실제 소유주인지 확인하는 권한 검사 로직을 포함하여, 다른 사람의 파일을 임의로 조회하거나 삭제할 수 없도록 합니다.

👩‍💻 변경/추가될 엔드포인트

  • GET /api/file/{fileUUID}/content: 특정 파일의 내용을 조회합니다.
  • DELETE /api/file/{fileUUID}: 특정 파일을 삭제합니다.

✅ 참고 사항

  • S3Uploader에 S3 객체를 조회(getObjectAsBytes)하고 삭제(deleteObject)하는 로직을 추가했습니다.
  • FileService에 소유주를 확인하는 중복 로직을 private 헬퍼 메소드로 분리하여 코드 재사용성을 높였습니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions