2014-12-09 10 views
20

Ich tue dies zur Zeit, aber es ist sehr langsam, da ich mehrere Terabyte an Daten in den Eimer haben:Schnellste Möglichkeit, Google Storage-Bucket-Größe zu erhalten?

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

Und das gleiche gilt für einen Unterordner:

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

Ist es möglich, die Gesamtgröße eines kompletten Buckets (oder eines Unterordners) irgendwo anders oder auf andere Weise zu erhalten, was viel schneller ist?

Antwort

9

Leider nein. Wenn Sie wissen möchten, welche Größe der Bucket gerade hat, gibt es keinen schnelleren Weg als das, was Sie tun.

Wenn Sie dies regelmäßig überprüfen müssen, können Sie die Bucket-Protokollierung aktivieren. Google Cloud Storage generiert ein tägliches Speicherprotokoll, mit dem Sie die Größe des Buckets überprüfen können. Wenn das nützlich wäre, können Sie hier mehr darüber lesen: https://cloud.google.com/storage/docs/accesslogs#delivery

+0

Wie viele Anfragen macht 'du'? Eine pro Objekt, oder ist es irgendwie optimiert? Aus Sicht der Abrechnung gut zu wissen. –

5

Wenn das tägliche Speicherprotokoll, das Sie von der Aktivierung der Bucket-Protokollierung (nach Brandons Vorschlag) erhalten, nicht für Sie funktioniert, können Sie etwas beschleunigen up ist es, die du-Anfrage zu zerschmettern.

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 

(vorausgesetzt, Ihre Unterordner namens beginnend mit Buchstaben des englischen Alphabets, und wenn nicht, müssen Sie einstellen, wie Sie die oben genannten Befehle liefen): Zum Beispiel könnte man so etwas zu tun.