Übergeordnete Befehlszeilenoptionen

Beschreibung

gsutil unterstützt separate Optionen für den übergeordneten gsutil-Befehl und die einzelnen Unterbefehle (z. B. cp, rm usw.). Die übergeordneten Optionen steuern das Verhalten von gsutil, das auf alle Befehle angewendet wird. Nehmen wir den folgenden Befehl als Beispiel:

gsutil -m cp -p file gs://bucket/obj

Die Option "-m" gilt für gsutil und die Option "-p" für den cp-Unterbefehl.

Optionen

-D

Zeigt HTTP-Anfragen/-Header und zusätzliche Debugging-Informationen an, die beim Posten von Supportanfragen erforderlich sind, u. a. Stacktraces von Ausnahmen.

-DD Wie -D, plus HTTP-Upstream-Nutzlast.
-h

Ermöglicht die Angabe bestimmter HTTP-Header, z. B.:


gsutil -h "Cache-Control:public,max-age=3600" \
       -h "Content-Type:text/html" cp ...

Beachten Sie, dass Sie Header/Werte mit Leerzeichen in Anführungszeichen setzen müssen (z. B. "Content-Disposition: attachment; filename=filename.ext"), damit die Shell sie nicht in separate Argumente aufteilt.

Die folgenden Header werden als Objektmetadaten gespeichert und in zukünftigen Anfragen im Zusammenhang mit dem Objekt verwendet:


Cache-Control
Content-Disposition
Content-Encoding
Content-Language
Content-Type

Mit den folgenden Headern wird die Datenintegrität geprüft:


Content-MD5

gsutil unterstützt auch benutzerdefinierte Metadatenheader mit einem übereinstimmenden Cloud Storage-Anbieterpräfix z. B.:


x-goog-meta-

Beachten Sie, dass bei gs://-URLs der Header Cache-Control für die verwendete API spezifisch ist. Die XML API akzeptiert alle Cache-Control-Header und gibt sie bei Objektdownloads zurück. Die JSON API berücksichtigt nur die Cache-Control-Header "public", "private", "no-cache", "max-age" und "no-transform".

Unter gsutil help setmeta erfahren Sie, wie Sie Metadatenfelder für Objekte festlegen können, nachdem sie hochgeladen wurden.

-i

Hiermit können Sie die konfigurierten Anmeldedaten verwenden, um die Identität eines Dienstkontos zu übertragen. Beispiel:


gsutil -i "service-account@google.com" ls gs://pub

Beachten Sie, dass diese Einstellung von der XML API und von S3 ignoriert wird. Weitere Informationen zur Identitätsübertragung für Dienstkonten finden Sie unter gsutil help creds.

-m

Veranlasst, dass unterstützte Vorgänge (acl ch, acl set, cp, mv, rm, rsync und setmeta) parallel ausgeführt werden. Dies kann die Leistung erheblich verbessern, wenn Sie Vorgänge mit einer großen Anzahl an Dateien über eine relativ schnelle Netzwerkverbindung ausführen.

gsutil führt den angegebenen Vorgang mit einer Kombination aus Multi-Threading und Multi-Processing aus. Die Anzahl der Threads und Prozessoren werden durch parallel_thread_count bzw. parallel_process_count festgelegt. Diese Werte werden in der .boto-Konfigurationsdatei festgelegt oder in einzelnen Anfragen mit dem Top-Level-Flag -o angegeben. Da gsutil keine integrierte Unterstützung für die Drosselung von Anfragen bietet, sollten Sie mit diesen Werten experimentieren. Die optimalen Werte können aufgrund einer Reihe von Faktoren variieren, einschließlich Netzwerkgeschwindigkeit, Anzahl der CPUs und verfügbarem Arbeitsspeicher.

Die Verwendung der Option „-m“ kann eine große Menge an Netzwerkbandbreite verbrauchen und Probleme verursachen oder die Leistung verschlechtern, wenn Sie ein langsameres Netzwerk verwenden. Beispiel: Wenn Sie einen großen Synchronisierungsvorgang über einen Netzwerklink starten, der auch von anderen wichtigen Jobs genutzt wird, könnte dies die Leistung dieser Jobs beeinträchtigen. Die Option „-m“ kann die Leistung ähnlich beeinträchtigen, insbesondere bei Fällen, die alle Vorgänge lokal ausführen, da sie Ihre lokale Festplatte „trashen“ kann.

Zur Vermeidung solcher Probleme reduzieren Sie die Werte für parallel_thread_count und parallel_process_count oder beenden die Verwendung der Option „-m“ komplett. Ein Tool, mit dem Sie begrenzen können, wie viel E/A-Kapazität gsutil verbraucht, und auch verhindern können, dass Ihr lokales Laufwerk monopolisiert wird, ist Ionice (in vielen Linux-Systemen vorhanden). Der folgende Befehl reduziert beispielsweise die E/A-Priorität von gsutil, damit sie nicht Ihr gesamtes lokales Laufwerk beansprucht:


ionice -c 2 -n 7 gsutil -m rsync -r ./dir gs://some bucket

Wenn ein Download- oder Uploadvorgang mit paralleler Übertragung fehlschlägt, bevor die gesamte Übertragung abgeschlossen ist (z. B. nach der Übertragung von 300 von 1.000 Dateien), müssen Sie die gesamte Übertragung neu starten.

Obwohl bei den meisten Befehlen normalerweise ein Fehler auftritt, wenn das „-m“-Flag deaktiviert ist, versuchen alle Befehle, alle Vorgänge zu testen, wenn „-m“ für mehrere Threads oder Prozesse aktiviert ist. Die Anzahl der fehlgeschlagene Vorgänge werden am Ende der Befehlsausführung als Ausnahme gemeldet.

-o Legt Werte im boto-Konfigurationswert fest bzw. überschreibt vorhandene Werte. Das Format ist <Abschnitt>:<Name>=<Wert>, z. B. gsutil -o "Boto:proxy=host". Dadurch wird die Option nicht an gsutil-Integrationstests übergeben, die in einem separaten Prozess ausgeführt werden.
-q Veranlasst, dass gsutil Vorgänge im Hintergrund ausführt, d. h., dass Fortschrittsindikatoren zum Kopieren oder Entfernen von Dateien usw. nicht gemeldet werden. Fehler werden weiterhin gemeldet. Diese Option kann nützlich sein, wenn Sie gsutil über einen Cronjob ausführen, der seine Ausgabe in eine Datei protokolliert, für die im Log nur Informationen zu Fehlern erwünscht sind.
-u

Ermöglicht die Angabe eines Nutzerprojekts, dem die Anfrage in Rechnung gestellt werden soll. Beispiel:


gsutil -u "bill-this-project" cp ...