티스토리 뷰
들어가며,
AWS S3에 올린 객체가 특정 날짜에 삭제되거나 몇일이 지나 삭제가 됐으면 좋겠다고 생각할 때가 있다.
이 경우 어떻게 해야 되는지 살펴보자
1. S3 Bucket LifeCycle Rule을 설정
S3 LifeCycle Rule은 객체 자체에 Rule을 설정할 수 없어 Bucket 단위로 설정이 가능하다.
batch 작업으로 유저가 등록한 파일을 자동 제거하는 규칙을 설정한 rule이 있다.
생명주기 이름을 기입한다.
규칙 범위를 선택한다.
하나 이상의 필터로 이 규칙을 범위 제한
버킷의 모든 객체에 적용
필터 유형 설정
- 객체 태그 추가
객체 크기 제한 가능
수명 주기 규칙 작업 설정
스토리지 간 현재/이전 버전 이동
객체에 현재 버전 만료
- 설정하고 싶은 기간의 일 수를 기입합니다. ex) 7
객체의 이전버전 영구 삭제
객체가 최신이 아닌 버전이 된 후 경과한 일수 필드에 "1"을 입력합니다.
모든 버전을 삭제하고 싶다면 유지할 최신 버전 수 필드를 비우세요.
만료된 객체 삭제 마커 또는 완료되지 않은 멀티파트 업로드 삭제 현재 버전 만료와 함께 사용 불가
추가적인 내용은 여기서 볼 수 있습니다.
NestJS에서는 어떻게 사용할 수 있을까?
- 권한 여부 확인
s3PutObject
s3DeleteObject
s3PutObjectTagging
s3RequestObjectTag
2. c3api에 적용된 Upload 방법을 이용해서 설명함
tagging을 통해 추가가 가능하다. tagging은 key=value 형태로 여러개를 넣고 싶으면 &을 추가해야한다.
ex) expiration_day=7&delete=force
const upload = new Upload({
client: this.s3Client,
params: {
Bucket: bucketName,
Key: key,
Body: Readable.from(file.buffer),
ContentType: file.mimetype,
ACL: acl ?? 'private',
...(expires && { Expires: expires }),
...(tagging && { Tagging: tagging }), // TAG 설정 'expiration_day=7'
},
});
참고
https://repost.aws/ko/knowledge-center/s3-empty-bucket-lifecycle-rule
https://medium.com/@dnorth98/using-s3-batch-to-tag-data-for-removal-a569fef7ac0
'CS > Infra' 카테고리의 다른 글
S3에서 Presigned URL 사용하기 (1) | 2023.10.09 |
---|
- Total
- Today
- Yesterday
- SSAFY 특화프로젝트 회고
- 동기/비동기
- 점진적개선
- JRE
- nodejs
- PUT vs POST
- 개발기록
- 자바기초
- nodejs 버전 관리
- Content-Type
- UI/UX
- 클린코드
- 필수단어
- 블로킹/논블로킹
- 트랜잭션
- application/x-www-form-urlencoded
- S3
- SSAFY 퇴소
- charset
- 너디너리데모데이
- AntPattern
- 디미터법칙
- 개발프로세스
- PresignedURL
- 디자인시스템
- LTS 개선
- 콘웨이법칙
- HTTP
- 2022년 회고
- 소프트웨어개발프로세스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |