🔬
GAになった gcloud storage コマンドと gsutil コマンドのサブコマンドを比較してみた
こんにちは、クラウドエースの阿部です。
今年9/13にgcloud storage
コマンドが一般公開(GA)になりました。
参考: Google Cloud release notes, September 13, 2022
オブジェクト転送速度の改善については、gcloud storage
コマンドの評価版が2021年7月に公開され、下記ブログにて紹介されていました。
この記事では、GAになったgcloud storage
コマンドとgsutil
コマンドとの、サブコマンド差分について調査してみました。
比較したコマンドのバージョン
- Google Cloud CLI(
gcloud
): 402.0.0 -
gsutil
: 5.13
サブコマンド比較表
gsutil
とgcloud storage
で、実装状況を比較してみました。
※help
やupdate
のような本質的な比較に意味の無いものも機械的に載せてしまってます
こうして一覧にしてみると、GAになったとは言えgcloud storage
で未実装の機能は多く感じます。
gsutil | gcloud storage | 代替 | |
---|---|---|---|
acl | get | gcloud storage buckets describe gcloud storage objects describe |
○ |
set | - | × | |
ch | - | × | |
autoclass | get | - | × |
set | - | × | |
bucketpolicyonly | get | gcloud storage buckets describe | ○ |
set | - | × | |
cat | gcloud storage cat | ○ | |
compose | gcloud storage objects compose | ○ | |
config | - | × | |
cors | get | gcloud storage buckets describe | ○ |
set | gcloud storage buckets update --cors-file gcloud storage buckets update --clear-cors |
○ | |
cp | gcloud storage cp | ○ | |
defacl | get | gcloud storage buckets describe | ○ |
set | - | × | |
defstorageclass | get | gcloud storage buckets describe | ○ |
set | gcloud storage buckets update --default-storage-class | ○ | |
du | - | × | |
hash | - | × | |
help | - | × | |
hmac | create | - | × |
delete | - | × | |
get | - | × | |
list | - | × | |
update | - | × | |
iam | get | - | × |
set | - | × | |
ch | - | × | |
kms | authorize | - | × |
encryption | gcloud storage buckets update --default-encryption-key gcloud storage buckets update --clear-default-encryption-key |
○ | |
serviceaccount | gcloud storage service-agent | ○ | |
label | get | gcloud storage buckets describe | ○ |
set | gcloud storage buckets update --labels-file | ○ | |
ch | gcloud storage buckets update --update-labels gcloud storage buckets update --remove-labels |
○ | |
lifecycle | get | gcloud storage buckets describe | ○ |
set | gcloud storage buckets update --lifecycle-file gcloud storage buckets update --clear-lifecycle |
○ | |
logging | get | gcloud storage buckets describe | ○ |
set | gcloud storage buckets update --log-bucket gcloud storage buckets update --clear-log-bucket |
○ | |
ls | gcloud storage ls | ○ | |
mb | gcloud storage buckets create | ○ | |
mv | gcloud storage mv | ○ | |
notification | create | gcloud storage buckets notifications create | ○ |
delete | gcloud storage buckets notifications delete | ○ | |
list | gcloud storage buckets notifications list | ○ | |
watchbucket | - | × | |
stopchannel | - | × | |
pap | get | gcloud storage buckets describe | ○ |
set | gcloud storage buckets update --pap gcloud storage buckets update --public-access-prevention |
○ | |
perfdiag | - | × | |
rb | gcloud storage buckets delete | ○ | |
requesterpays | get | gcloud storage buckets describe | ○ |
set | gcloud storage buckets update --requester-pays | ○ | |
retention | get | gcloud storage buckets describe | ○ |
set | - | × | |
clear | - | × | |
lock | - | × | |
event-default | - | × | |
event | - | × | |
temp | - | × | |
rewrite | - | × | |
rm | gcloud storage rm | ○ | |
rpo | get | gcloud storage buckets describe | ○ |
set | - | × | |
rsync | - | × | |
setmeta | gcloud storage objects update --custom-metadata | ○ | |
signurl | - | × | |
stat | gcloud storage objects list --stat | ○ | |
test | - | × | |
ubla | get | gcloud storage buckets describe | ○ |
set | - | × | |
update | - | × | |
version | gcloud version | ○ | |
versioning | get | gcloud storage buckets describe | ○ |
set | gcloud storage buckets update --versioning | ○ | |
web | get | gcloud storage buckets describe | ○ |
set | gcloud storage buckets update --web-main-page-suffix --web-error-page | ○ |
参考
gcloud storageのサブコマンドの特徴
-
gsutil
は機能→get/setというサブコマンド階層だったが、gcloud storage
ではdescribe
サブコマンドで参照系をまとめており、更新系はcreate
,update
,delete
としている- コマンド体系が
gcloud
の他のプロダクトと統一されたので平仄が合って分かりやすいかも知れない -
gsutil
から移行しようと思うとサブコマンド書式やオプション構成が全く違うので苦労しそうな印象
- コマンド体系が
-
gcloud storage
はgcloud共通の--format
オプションが使えるため、コマンド結果をCSVやJSON形式で出力できる- 他のツールと連携させるときは
gsutil
より便利になりそう
- 他のツールと連携させるときは
gcloud storage未実装のサブコマンドで気になった点
- IAM/ACLを操作するサブコマンドが存在しない
- コマンドラインだけでIAMやACLの操作を完結させたい場合は代替できなさそうです
-
gsutil rsync
やgsutil du
のような便利なコマンドが実装されていない- このあたりは
gcloud storage
でも実装して欲しいですね
- このあたりは
- Uniform Bucket Level Access/Bucket Policy Onlyを操作するコマンドが存在しない
-
gcloud storage buckets create
のオプションで、バケット作成時にUniform Bucket Level Accessを有効にするオプションは使用可能
-
まとめ
最低限必要な機能は揃っているものの、一部欲しい機能はまだ実装されてないなという印象です。
こうした機能はgcloud storage
側にも実装されると嬉しいなと思います。
gcloudコマンドは--format
や--filter
オプションを使う事で他ツールとの連携がやりやすいので、今後もgcloud storage
コマンドが拡充されていくことを願っております。
Discussion