Shim zum Ausführen von gcloud-Speicher

Die Google Cloud CLI enthält eine Befehlszeile für Cloud Storage, gcloud storage, die bei Uploads und Downloads mit weniger Parameteranpassungen erheblich schneller als gsutil sein kann. Die gcloud storage-Befehle haben eine Syntax und eine Befehlsstruktur, die gsutil-Nutzern vertraut ist. Sie unterscheidet sich in vielerlei Hinsicht jedoch grundlegend. Um den Übergang zur gcloud CLI zu erleichtern, bietet gsutil ein Shim, das Ihre gsutil-Befehle in gcloud storage-Befehle übersetzt, wenn ein Äquivalent vorhanden ist, und auf das übliche Verhalten von gsutil zurückgreift, wenn kein Äquivalent vorhanden ist.

Zum Aktivieren

Legen Sie use_gcloud_storage=True in der Konfigurationsdatei .boto im Abschnitt [GSUtil] fest:

[GSUtil]
use_gcloud_storage=True

Sie können das Flag auch für einzelne Befehle mit dem übergeordneten Flag -o festlegen.

gsutil -o "GSUtil:use_gcloud_storage=True" -m cp -p file gs://bucket/obj

Verfügbare Befehle

Die gcloud-Storage-Befehlszeile unterstützt nur einen Teil der gsutil-Befehle. Im Folgenden finden Sie eine Liste der Befehle, die vom Shim unterstützt werden. Dabei werden Unterschiede im Verhalten festgestellt.

acl

  • Der Unterbefehl ch wird nicht unterstützt.

autoclass

  • Funktioniert wie erwartet.

bucketpolicyonly

  • Funktioniert wie erwartet.

Katze

  • Druckt Objektdaten für ein zweites Objekt, auch wenn das erste Objekt ungültig ist.

compose

  • Funktioniert wie erwartet.

cors

  • Der Unterbefehl get gibt „[]“ anstelle von „gs://[Bucket-Name] has no CORS configuration“ aus.

cp

  • Kopiert ein zweites Objekt, auch wenn das erste Objekt ungültig ist.

  • Datei können nicht in Dateien kopiert werden.

  • Unterstützt das Kopieren von Objekten von Cloud zu Cloud mit abschließenden Schrägstrichen im Namen.

  • Das Allversions-Flag (-A) aktiviert im Hintergrund eine sequenzielle Ausführung, anstatt einen Fehler auszulösen.

defacl

  • Der Unterbefehl ch wird nicht unterstützt.

defstorageclass

  • Funktioniert wie erwartet.

Hash

  • In gsutil werden die Flags -m und -c, die sich auf die angezeigten Hashes auswirken, für Cloud-Objekte ignoriert. Dieses Verhalten wurde für den Shim und gcloud-Speicher korrigiert.

iam

  • Der Unterbefehl ch wird nicht unterstützt.

  • Das Flag -f wird bei jedem Fehler fortgesetzt, nicht nur bei API-Fehlern.

kms

  • Der Unterbefehl "authorize" gibt Informationsnachrichten in einem anderen Format zurück.

  • Der Unterbefehl "encryption" gibt Informationsnachrichten in einem anderen Format zurück.

Labels

  • Der Unterbefehl get gibt „[]“ anstelle von „gs://[Bucket-Name] has no labels configuration.“ aus.

lifecycle

  • Funktioniert wie erwartet.

Logging

  • Der Unterbefehl "get" hat andere JSON-Abstände und gibt keine Informationsmeldung aus, wenn keine Konfiguration gefunden wird.

ls

  • Funktioniert wie erwartet.

mb

  • Funktioniert wie erwartet.

mv

  • Siehe Hinweise zu cp.

Benachrichtigung

  • Der Unterbefehl "list" gibt Konfigurationsinformationen als YAML aus.

  • Der Unterbefehl "delete" bietet Fortschrittsverfolgung und Parallelisierung.

pap

  • Funktioniert wie erwartet.

rb

  • Funktioniert wie erwartet.

requesterpays

  • Funktioniert wie erwartet.

rewrite

  • Das Flag -k gibt bei Aufruf ohne neuen Schlüssel keinen Fehler aus. Sowohl mit also auch ohne Shim bleibt der alte Schlüssel erhalten.

rm

  • $folder$-Löschmarkierungen werden nicht unterstützt.

rpo

  • Funktioniert wie erwartet.

setmeta

  • Es wird kein Fehler ausgegeben, wenn keine Header geändert werden.

stat

  • Enthält das Feld "Storage class update time:", das Tabbing stören kann.

ubla

  • Funktioniert wie erwartet.

versioning

  • Funktioniert wie erwartet.

web

  • Der Unterbefehl "get" hat andere JSON-Abstände und gibt keine Informationsmeldung aus, wenn keine Konfiguration gefunden wird.

Boto-Konfiguration

Die in der boto-Datei gefundene Konfiguration wird gegebenenfalls 1:1 den gcloud-Umgebungsvariablen zugeordnet.

[Anmeldedaten]

  • aws_access_key_id: AWS_ACCESS_KEY_ID

  • aws_secret_access_key: AWS_SECRET_ACCESS_KEY

  • use_client_certificate: CLOUDSDK_CONTEXT_AWARE_USE_CLIENT_CERTIFICATE

[Boto]

  • proxy: CLOUDSDK_PROXY_ADDRESS

  • proxy_type: CLOUDSDK_PROXY_TYPE

  • proxy_port: CLOUDSDK_PROXY_PORT

  • proxy_user: CLOUDSDK_PROXY_USERNAME

  • proxy_pass: CLOUDSDK_PROXY_PASSWORD

  • proxy_rdns: CLOUDSDK_PROXY_RDNS

  • http_socket_timeout: CLOUDSDK_CORE_HTTP_TIMEOUT

  • ca_certificates_file: CLOUDSDK_CORE_CUSTOM_CA_CERTS_FILE

  • max_retry_delay: CLOUDSDK_STORAGE_BASE_RETRY_DELAY

  • num_retries: CLOUDSDK_STORAGE_MAX_RETRIES

[GSUtil]

  • check_hashes: CLOUDSDK_STORAGE_CHECK_HASHES

  • default_project_id: CLOUDSDK_CORE_PROJECT

  • disable_analytics_prompt: CLOUDSDK_CORE_DISABLE_USAGE_REPORTING

  • use_magicfile: CLOUDSDK_STORAGE_USE_MAGICFILE

  • parallel_composite_upload_threshold: CLOUDSDK_STORAGE_PARALLEL_COMPOSITE_UPLOAD_THRESHOLD

  • resumable_threshold: CLOUDSDK_STORAGE_RESUMABLE_THRESHOLD

[OAuth2]

  • client_id: CLOUDSDK_AUTH_CLIENT_ID

  • client_secret: CLOUDSDK_AUTH_CLIENT_SECRET

  • provider_authorization_uri: CLOUDSDK_AUTH_AUTH_HOST

  • provider_token_uri: CLOUDSDK_AUTH_TOKEN_HOST

Allgemeine Kompatibilitätshinweise

  • Aufgrund der Kompatibilität auf allen Hauptplattformen ist die Multiverarbeitung standardmäßig für alle Befehle aktiviert. Das entspricht der Option -m, die immer in gsutil enthalten ist.

  • Eine Folge von Sternchen größer als 2 (d.h. ***) wird immer als einzelnes Sternchen behandelt.

  • Im Gegensatz zu gsutil ist gcloud nicht für die Verwendung in parallelen Aufrufen vorgesehen. Dies kann zu unvorhersehbarem Verhalten führen, z. B. wenn der Shim von zwei Terminals gleichzeitig ausgeführt wird.

  • Wenn ein Bucket ein Objekt gs://bucket/nested/foo.txt enthält, entspricht der Platzhalter-Iterator von gsutil foo.txt einer URL wie gs://bucket/*/nested/*. Der Shim stimmt nicht mit foo.txt bei derselben URL überein.

  • Wenn Unicode Probleme hat, legen Sie die Umgebungsvariable PYTHONUTF8 auf 1 fest. Dies kann insbesondere bei der Windows-Befehlszeile hilfreich sein.