web-dev-qa-db-ja.com

Google Storageバケットサイズを取得する最速の方法は?

私は現在これを行っていますが、バケットに数テラバイトのデータがあるため、非常に遅くなります。

gsutil du -sh gs://my-bucket-1/

そして、サブフォルダーについても同じです:

gsutil du -sh gs://my-bucket-1/folder

完全なバケット(またはサブフォルダー)の合計サイズを他の場所で、またははるかに高速な他の方法で取得することは可能ですか?

39
fredrik

残念だけど違う。バケットの現在のサイズを知る必要がある場合は、実行している方法よりも速い方法はありません。

これを定期的に確認する必要がある場合は、バケットのロギングを有効にできます。 Google Cloud Storageは、バケットのサイズを確認するために使用できる毎日のストレージログを生成します。それが役立つ場合は、こちらで詳細を確認できます: https://cloud.google.com/storage/docs/accesslogs#delivery

19

バケットのログ記録を有効にして取得した毎日のストレージログ(Brandonの提案による)が機能しない場合、処理を高速化するためにできる1つのことは、duリクエストをシャーディングすることです。たとえば、次のようなことができます。

gsutil du -s gs://my-bucket-1/a* > a.size &
gsutil du -s gs://my-bucket-1/b* > b.size &
...
gsutil du -s gs://my-bucket-1/z* > z.size &
wait
awk '{sum+=$1} END {print sum}' *.size

(サブフォルダーの名前は英語のアルファベットの文字で始まると仮定します。そうでない場合は、上記のコマンドの実行方法を調整する必要があります)。

10
Mike Schwartz

ここでのグーグルストレージの可視性はかなりひどいです

最速の方法は、実際にはStackdriverの指標を取得し、合計サイズをバイト単位で確認することです enter image description here

残念ながら、Stackdriverで実行できるフィルタリングは事実上ありません。バケット名をワイルドカードにすることはできません。ほとんど役に立たないバケットリソースラベルは、スタックドライバーの指標で集計できません

また、これはバケットレベルのみであり、プレフィックスではありません

SDメトリックが更新されます毎日、1日待つことができない限り、これを使用して現在のサイズをすぐに取得することはできません

6
red888

CLIを使用すると、頻繁にタイムアウトになることがわかりました。しかし、それは私がコールドラインストレージを検討していたときのことです。

GUIソリューションの場合。見てください Cloudberry Explorer

ストレージのGUIビュー

1
needcaffeine