AWS S3에 8GB 정도의 파일을 업로드 할 일이 생겨서 찾다보니 다른 방법 보다 AWS CLI의 sync 명령을 사용하는 것이 좋다는 판단에 AWS CLI 를 설치해서 사용해 보기로 했다.
Amazon Linux를 설치하면 기본적으로 AWS CLI가 설치되어 있다.
난 그냥 brew를 이용해서 설치.
$ brew install awscli
aws configure 명령을 통해서 기본 액세스키, 시크릿키, 리전을 설정한다.
$ aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]: ap-northeast-1
Default output format [None]:
우리는 S3에 파일을 업로드 해야 하기 때문에 관련 사용 방법은 http://docs.aws.amazon.com/cli/latest/reference/s3/를 참고.
$ aws s3 sync ./ s3://mybucket
upload: test.txt to s3://mybucket/test.txt
upload: test2.txt to s3://mybucket/test2.txt
or
$ aws s3 sync s3://mybucket ./
download: s3://mybucket/test.txt to test.txt
download: s3://mybucket/test2.txt to test2.txt
or
$ aws s3 sync s3://mybucket s3://mybucket2
copy: s3://mybucket/test.txt to s3://mybucket2/test.txt
copy: s3://mybucket/test2.txt to s3://mybucket2/test2.txt
위 방법을 사용하여 아래와 같이 파일을 업로드 했다.
$ aws s3 sync Download/images s3://freegians/images
결과는 실패
아시아 태평양(뭄바이), 아시아 태평양(서울), EU(프랑크푸르트) 및 중국(베이징) 리전에서 Amazon S3는 signature version 4만 지원하고 나머지 모든 리전에서는 Amazon S3에서 signature version 4와 2를 모두 지원한다고 한다.
설치된 AWS CLI sdk signature version이 2 였던 것이다.아래 명령을 통해 signature version 4로 변경해보자.
$ aws configure set default.s3.signature_version s3v4
다시 aws s3 sync 명령 실행하니 성공