IT/FinOps

[aws] aws cli로 오래된 s3 객체 지우기

Jany 2022. 7. 22. 15:02
반응형

aws cli 명령어 중에 rm으로는 s3 객체를 여러개를 한번에 지울수 없다.

 

s3api 를 사용해서 지워야되는데,

해당되는 리스트를 만들고,

리스트에 있는 파일을 지우는 방식으로 진행했다.

 

2018년 12월 31일까지 수정된 파일 저장하기

aws s3api list-objects --bucket stillshot-log --query "Contents[?LastModified<='2018-12-31'].[Key]" --output text > file-of-keys

 

저장된 파일을 읽어서 삭제하기

cat file-of-keys | xargs -P8 -n1000 bash -c 'aws s3api delete-objects --bucket stillshot-log --delete "Objects=[$(printf "{Key=%s}," "$@")],Quiet=true"' _

 

우선 cat 을 head로 바꿔서 삭제 해봤다.

root@newstars:~# head file-of-keys 

head에 있는 파일이 조회되는지 확인

 

그럼 이제 돌리자.

 

반응형