1. 사전작업

먼저 해야 할 일이 있다. S3에 대해 뭘 좀 알아야 본 내용을 이해할 수 있다. 사전 지식을 취득했다면 이제 PIP를 설치해야 하고, AWS CLI를 설치해야 한다.


2. 계정 연결

위와 같이 CLI까지 설치가 되면 이제 적절한 권한을 가진 사용자 계정 연결을 해야 한다. 이 계정은 IAM으로 생성된 계정인데 IAM 메뉴에서 계정 생성을 하면 Access Key ID와 Secret Access Key를 알려준다. (Secret Access Key는 Show 버튼을 눌러야 볼 수 있다) 이 정보를 잘~ 기억해두어야 한다.

이제 CLI 상에서 사용자 계정 연결을 하는 작업이다..

# aws configure
AWS Access Key ID [****************XXXX]:
AWS Secret Access Key [****************XXXX]:
Default region name [None]: Seoul
Default output format [None]:

ls 커맨드는 s3 목록을 보여준다.

# aws s3 ls s3://my-bucket

An error occurred (InvalidRequest) when calling the ListObjects operation: Missing required header for this request: x-amz-content-sha256

그런데 위와 같이 에러가 발생한다면!

.....

....

...

..

 

눈치 챘을지 모르겠지만 리전 네임을 잘못 넣었다. 서울 리전은 Seoul이 아니고 ap-northeast-2임!

# aws configure
AWS Access Key ID [****************XXXX]:
AWS Secret Access Key [****************XXXX]:
Default region name [Seoul]: ap-northeast-2
Default output format [None]:

3. 목록 보기

# aws s3 ls s3://my-bucket
                           PRE test/

성공!!


4. 업로드

다음은 파일 업로드 테스트를 해볼 차례이다.

# aws s3 cp mytestlog.txt s3://my-bucket/myfile.txt
upload: ./mytestlog.txt to s3://my-bucket/myfile.txt

실제로는 업로드 상황이 실시간으로 보여진다. (지금까지 올라간 용량, 퍼센트 등)

그 외에 주의할 점!

만약 test 라는 폴더를 만들었다고 치자. ls로 목록 확인을 하려고 하는데..

# aws s3 ls s3://my-bucket/test
                           PRE test/

아래와의 차이점은?

# aws s3 ls s3://my-bucket/test/
2017-05-09 22:06:12          0
2017-05-09 22:09:36      86408 mytest2.txt

눈을 크게 뜨고 찾아보길 바라며....

3S3내의 파일 위치를 옮기고 싶다면

# aws s3 cp s3://my-bucket/v2/myfile-1.1.0.tar.gz s3://my-bucket/v3/

5. 기타

profile을 사용하는 경우 --profile, --region 옵션을 함께 사용하여 작업한다.

# aws s3 cp [파일명] s3://[버킷명]/[폴더명]/ --profile [프로파일명] --region [리전명]