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 [리전명]