본문 바로가기
공부/프로그래밍

[aws] aws cli로 s3 파일 삭제(console에서 파일삭제 실패 시-파일명 한글일 경우 실패함)

by demonic_ 2021. 1. 8.
반응형

aws s3파일 중에 한글로 되어있는 경우 console 에서 지우는데 계속 실패하여 aws cli로 지우기로 했다.

 

오랜만에 aws cli를 사용하는데, 다음의 에러가 발생했다.

$ aws
zsh: /usr/local/bin/aws: bad interpreter: /usr/local/opt/python/bin/python3.7: no such file or directory

 

찾아보니 클라이언트를 재설치하란 말이 있어서 재설치 하기로 했다.

참고로 이번 환경은 macOS에서 한 것이다

brew reinstall awscli

 

다음으로 awscli 를 실행하는 링크를 재연결한다

$ brew link --overwrite awscli

Linking /usr/local/Cellar/awscli/2.0.44... 7 symlinks created

 

이제 실행되는지 확인해보자.

$ aws

usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: the following arguments are required: command

 

이제 awc cli 설정하기 위해 엑세스키를 발급받는다.

aws console 접속 -> IAM 으로 이동하여 엑세스키, 보안 엑세스키를 획득한다.

해당 메뉴에 접속하면 다음과 같은 화면이 보인다. 사용자 추가를 클릭한다.

 

이름을 설정하고 엑세스 유형에서 프로그래밍 방식 엑세스를 체크한다.

 

권한은 S3를 컨트롤하기 위한 것이니 AmazonS3FullAccess 만 준다

 

태그는 생략하고 다음으로 넘어갔다

마지막으로 최종 화면에서 설정을 체크하고, 사용자만들기 버튼을 누른다.

 

그럼 다음과 같은 엑세스키를 확인할 수 있다. 이 키를 가지고 aws cli에 등록한다.

 

다시 터미널로 돌아와서 다음 명령어를 입력한다.

aws configure

 

각 입력창에 엑세스키와 비밀 엑세스키를 입력한다. 리전과 output format을 묻는 것에는 아무 입력없이 Enter키만 입력하면 된다.

AWS Access Key ID [****************F3MG]: 엑세스 키
AWS Secret Access Key [****************fnOq]: 비밀 엑세스 키
Default region name [ap-northeast-2]: 
Default output format [json]: 

 

 

이제 s3를 조회해보자

S3에 생성한 버킷명을 확인할 수 있다.

$ aws s3 ls

2021-01-03 08:05:35 test-s3-2021

 

해당 버킷 아래 다음 2개의 파일이 있는데, 다음처럼 확인해보자

$ aws s3 ls s3://test-s3-2021

2021-01-03 08:06:43     344853 chef-4807317_1920.jpg
2021-01-03 08:06:43     241139 danielle-macinnes-IuLgi9PWETU-unsplash.jpg

 

파일을 삭제해보자.

recursive 옵션을 사용한 이유는 하위 디렉토리까지 모두 삭제하기 위함이다. 지금 설정에는 하위폴더가 없으니 제외해도 되지만 사용할 수 있으니 넣어두었다.

$ aws s3 rm s3://test-s3-2021 --recursive

delete: s3://test-s3-2021/chef-4807317_1920.jpg
delete: s3://test-s3-2021/danielle-macinnes-IuLgi9PWETU-unsplash.jpg

 

aws console 에서 확인해보면 파일이 삭제된 것을 확인할 수 있다.

 

 

끝.

 

 

 

반응형

댓글