버킷정책 수정해서 버킷 하위의 모든 리소스(gol2580bucket/*)에 퍼블릭액세스 가능하도록 함
어차피 삭제한 계정이라 가리지 않았습니다~
연결해줄 사용자의 IAM 권한 추가 : S3 쓰기 권한
- 연결할 사용자의 액세스키 생성 -> application.yml, security.properties 등 설정용 변수로 사용할 수 있도록 .csv로 저장해두기
- 노출되면 안 되므로 properties는 gitignore에 넣는 것 잊지 말기!!
생성한 사용자의 accesskey, secretkey, region (Credential) 을 기반으로 AmazonS3 (Client)를 빌드하는 설정파일
- title : 원본 파일이름
- filePath : UUID로 랜덤하게 생성된 파일주소 (= key)
-> DB에서 filePath를 불러와 덧붙여 실제 주소를 호출하는 형식으로 파일을 불러온다
- MultipartFile ( "multipart/form-data" ) 형식의 요청을 소화하기 위해 필요한 것
- @PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE
- @RequestPart(value) : 다른 JSON 데이터도 함께 받아야 한다면 value로 구별해주자
- originalFilename : 요청으로 받은 파일의 original name
- createFilename : S3에 중복이름의 파일이 저장되는 것을 막기위해 UUID를 이용해 랜덤한 이름 생성 : 랜덤String+파일확장자 형식
- putObject
- S3 버켓, 생성한 파일이름, 파일의 inputStream, 메타데이터(사이즈, 타입) 넘겨 S3에 저장
- uploadDB : Entity(File) Repository로 DB에 저장
- 여기서 filePath는 createdFilename