さくらのクラウドのオブジェクトストレージは Amazon S3 互換 API を備えていて、
AWS CLI でそのまま操作できます。ただ AWS の感覚で触ると地味にハマる点があったので、注意点だけまとめておきます。
基本操作
プロファイルを作り、エンドポイントを指定すれば AWS S3 と同じように使えます。
# プロファイル作成(region はサイトに応じて jp-north-1 等)
$ aws configure --profile sakura
# エンドポイント指定
$ export AWS_ENDPOINT_URL_S3="https://s3.isk01.sakurastorage.jp"
$ aws s3 ls s3://mybucket/ --profile sakura
$ aws s3 cp ./test.txt s3://mybucket/ --profile sakura
ここまでは問題なし。以下がハマりどころです。
AWS CLI のバージョンによっては PUT が通らない
AWS CLI のバージョンによっては PUT が通らない
AWS CLI v2 の新しめのバージョン(2.23 系以降)はチェックサムの挙動が変わり、PUT 系がエラーになることがあります。環境変数で旧挙動に戻せば回避できます。
export AWS_REQUEST_CHECKSUM_CALCULATION=WHEN_REQUIRED
export AWS_RESPONSE_CHECKSUM_VALIDATION=WHEN_REQUIRED
バケットの作成・削除は S3 互換 API では不可
`aws s3 mb` は通りません。バケットの作成・削除はコントロールパネル、または「さくらのオブジェクトストレージ API」(独自 API)から行います。オブジェクト単位の操作は S3 互換 API で OK です。
まとめ
S3 互換とはいえ完全に同じではなく、CLI のバージョン依存とバケット操作さえ押さえれば、あとは AWS S3 と同じ感覚で使えますので活用していきたいですね。

