ablog

不器用で落着きのない技術者のメモ

S3 アクセスポイント対応した AWS CLI のバージョン

AWS CLI 1.18.117 以降であれば対応している。なお、S3 アクセスポイントのエイリアスを使う場合はS3バケットと同じ扱いになるので、それより古いバージョンでも使える。

S3 アクセスポイントが対応した botocore のバージョンは 1.17.40
f:id:yohei-a:20210817225344p:plain

botocore 1.17.40 を使っている AWS CLI のバージョンは 1.18.117 以降
f:id:yohei-a:20210817225623p:plain
f:id:yohei-a:20210817225611p:plain

検証結果

  • 環境を確認
$ cat /etc/system-release
Amazon Linux release 2 (Karoo)
$ uname -r
4.14.241-184.433.amzn2.x86_64
  • AWS CLI をアンインストールする
$ sudo pip uninstall awscli
  • AWS CLI 1.18.116 をインストールする
$ sudo pip install "awscli==1.18.116"
$ aws --version
aws-cli/1.18.116 Python/2.7.18 Linux/4.14.241-184.433.amzn2.x86_64 botocore/1.17.39
  • ローカルから S3 へのアップロードは成功する
$ aws s3 cp 100mb.dat s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/ --profile system1
upload: ./100mb.dat to s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat
  • S3 からローカルにダウンロードは成功する
$ aws s3 cp s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat ./ --profile system1
download: s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat to ./100mb.dat
  • S3 to S3 のコピーは失敗する
$ aws s3 cp s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test2/ --profile system1
copy failed: s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat to s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test2/100mb.dat An error occurred (InvalidArgument) when calling the UploadPartCopy operation: Invalid resource in copy source ARN
  • S3 to S3 の mv は失敗する
$ aws s3 mv s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test2/ --profile system1
move failed: s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat to s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test2/100mb.dat An error occurred (InvalidArgument) when calling the UploadPartCopy operation: Invalid resource in copy source ARN
  • AWS CLI をアンインストールする
$ sudo pip uninstall awscli
  • AWS CLI 1.18.117 をインストールする
$ sudo pip install "awscli==1.18.117"
$ aws --version
aws-cli/1.18.117 Python/2.7.18 Linux/4.14.241-184.433.amzn2.x86_64 botocore/1.17.40
  • ローカルから S3 へのアップロードは成功する
$ aws s3 cp 100mb.dat s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/ --profile system1
upload: ./100mb.dat to s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat
  • S3 からローカルにダウンロードは成功する
$ aws s3 cp s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat ./ --profile system1
download: s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat to ./100mb.dat
  • S3 to S3 のコピーは成功する
$ aws s3 cp s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test2/ --profile system1
copy: s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat to  s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test2/100mb.dat
  • S3 to S3 の mv は成功する
$ aws s3 mv s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test2/ --profile system1
move: s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test/100mb.dat to s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/ap-system1/test2/100mb.dat