Auf dieser Seite wird beschrieben, wie Sie Vorgänge mit langer Ausführungszeit verwenden, die durch Methodenaufrufe in Cloud Storage initiiert werden. Ausführliche Informationen zur Semantik eines Vorgangs mit langer Ausführungszeit, der von einem bestimmten Methodenaufruf zurückgegeben wird, finden Sie in der funktionsspezifischen Dokumentation.
Erforderliche Rollen abrufen
Bitten Sie Ihren Administrator, Ihnen die Rolle „Storage-Administrator“ (roles/storage.admin
) oder die Rolle „Storage Legacy Bucket Owner“ (roles/storage.legacyBucketOwner
) für den Bucket oder das Projekt zuzuweisen, mit dem der zugrunde liegende Vorgang ausgeführt wird, um die Berechtigungen zu erhalten, die Sie zum Verwalten langwieriger Vorgänge in Cloud Storage benötigen.
Diese vordefinierten Rollen enthalten die folgenden Berechtigungen, die zum Verwalten lang laufender Vorgänge in Cloud Storage erforderlich sind:
storage.bucketOperations.cancel
storage.bucketOperations.get
storage.bucketOperations.list
Informationen zum Zuweisen von Rollen für Buckets finden Sie unter IAM mit Buckets verwenden. Informationen zum Zuweisen von Rollen für Projekte finden Sie unter Zugriff verwalten.
Details eines Vorgangs mit langer Ausführungszeit abrufen
Befehlszeile
Mit dem Befehl gcloud storage operations describe
können Sie Details zu einem Vorgang mit langer Ausführungszeit abrufen oder den Status prüfen:
gcloud storage operations describe projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID
Ersetzen Sie:
BUCKET_NAME
durch den Namen des Buckets, der den Vorgang mit langer Ausführungszeit enthält. Beispiel:my-bucket
.OPERATION_ID
durch die ID des lang andauernden Vorgangs, der in der Antwort der von Ihnen aufgerufenen Methoden zurückgegeben wird. Beispielsweise wird beim Aufrufen vongcloud storage restore
die folgende Antwort zurückgegeben und die ID des Vorgangs mit langer Ausführungszeit lautetBcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
:Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
REST APIs
JSON API
Installieren und initialisieren Sie die dcloud CLI, um ein Zugriffstoken für den Header
Authorization
zu generieren.Alternativ können Sie mit dem OAuth 2.0 Playground ein Zugriffstoken erstellen und in den Header
Authorization
einfügen.Verwenden Sie
cURL
, um die JSON API mit eineroperations.get
-ReportConfig-Anfrage aufzurufen:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/operations/OPERATION_ID"
Ersetzen Sie:
BUCKET_NAME
durch den Namen des Buckets, der mit dem Vorgang mit langer Ausführungszeit verknüpft ist.OPERATION_ID
durch die ID des Vorgangs mit langer Ausführungszeit ersetzen, die in der Antwort der von Ihnen aufgerufenen Methoden zurückgegeben wird. Beispielsweise wird beim Aufrufen vongcloud storage restore
die folgende Antwort zurückgegeben und die ID des Vorgangs mit langer Ausführungszeit lautetBcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
:Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
Wenn die Anfrage erfolgreich ist, wird eine operations
-Ressource zurückgegeben:
{ "kind": "storage#operation", "name": "projects/_/buckets/bucket/operations/operation_id", "metadata": { "@type": OperationMetadataType*, metadata OperationMetadata* }, "done": boolean, "response": { "@type": ResponseResourceType*, response ResponseResource* } }
Vorgänge mit langer Ausführungszeit in einem Bucket auflisten
Befehlszeile
Um die Vorgänge mit langer Ausführungszeit in einem Bucket aufzulisten, verwenden Sie den gcloud storage operations list
-Befehl:
gcloud storage operations list gs://BUCKET_NAME
Ersetzen Sie:
BUCKET_NAME
durch den Namen des Buckets, der die Vorgänge mit langer Ausführungszeit enthält. Beispiel:my-bucket
.
REST APIs
JSON API
Installieren und initialisieren Sie die dcloud CLI, um ein Zugriffstoken für den Header
Authorization
zu generieren.Alternativ können Sie mit dem OAuth 2.0 Playground ein Zugriffstoken erstellen und in den Header
Authorization
einfügen.Verwenden Sie
cURL
, um die JSON API mit eineroperations.get
-ReportConfig-Anfrage aufzurufen:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/operations"
Ersetzen Sie:
BUCKET_NAME
durch den Namen des Buckets, der mit den Vorgängen mit langer Ausführungszeit verknüpft ist, die Sie auflisten möchten.
Wenn die Anfrage erfolgreich ist, erhalten Sie eine Antwort ähnlich der folgenden:
{ "kind": "storage#operations", "nextPageToken": string, "operations": [ operations Resource ] }
Lange laufenden Vorgang abbrechen
Befehlszeile
Verwenden Sie den Befehl gcloud storage operations cancel
, um einen langwierigen Vorgang abzubrechen:
gcloud storage operations cancel projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID
Ersetzen Sie:
BUCKET_NAME
durch den Namen des Buckets, der den Vorgang mit langer Ausführungszeit enthält. Beispiel:my-bucket
.OPERATION_ID
durch die ID des lang andauernden Vorgangs, der in der Antwort der von Ihnen aufgerufenen Methoden zurückgegeben wird. Beispielsweise wird beim Aufrufen vongcloud storage restore
die folgende Antwort zurückgegeben und die ID des Vorgangs mit langer Ausführungszeit lautetBcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
:Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
REST APIs
JSON API
Installieren und initialisieren Sie die dcloud CLI, um ein Zugriffstoken für den Header
Authorization
zu generieren.Alternativ können Sie mit dem OAuth 2.0 Playground ein Zugriffstoken erstellen und in den Header
Authorization
einfügen.Verwenden Sie
cURL
, um die JSON API mit eineroperations.post
-ReportConfig-Anfrage aufzurufen:curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/operations/OPERATION_ID/cancel"
Ersetzen Sie:
BUCKET_NAME
durch den Namen des Buckets, der mit dem Vorgang mit langer Ausführungszeit verknüpft ist, den Sie abbrechen möchten.OPERATION_ID
durch die ID des Vorgangs mit langer Ausführungszeit ersetzen, die in der Antwort der von Ihnen aufgerufenen Methoden zurückgegeben wird. Beispielsweise wird beim Aufrufen vongcloud storage restore
die folgende Antwort zurückgegeben und die ID des Vorgangs mit langer Ausführungszeit lautetBcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
:Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
Metadaten
Langlaufende Vorgänge sind mit Metadaten verknüpft. Die folgenden Metadaten geben Eigenschaften eines Vorgangs mit langer Ausführungszeit an:
Erstellungszeit: Die Zeit, zu der der Vorgang mit langer Ausführungszeit erstellt wurde.
Endzeit: Der Zeitpunkt, zu dem der Vorgang mit langer Ausführungszeit abgeschlossen wurde.
Aktualisierungszeit: Die Uhrzeit, zu der der langlaufende Vorgang zuletzt geändert wurde.
Typ: Der Typ des aufgerufenen Vorgangs mit langer Ausführungszeit.
Abbruch angefordert: Gibt an, ob der Nutzer den Abbruch des lang andauernden Vorgangs angefordert hat.
Prozentsatz des Fortschritts: Der geschätzte Fortschritt des Vorgangs mit langer Ausführungszeit in Prozent. Der Wert
-1
bedeutet, dass der Fortschritt unbekannt ist.
Fehlerbehandlung
Vorgänge mit langer Ausführungszeit werden von asynchronen APIs initiiert und erfordern eine andere Fehlerbehandlung als synchrone APIs. Im Gegensatz zu synchronen APIs kann die Antwort auf asynchrone API-Aufrufe auch dann erfolgreich sein, wenn der Vorgang mit langer Ausführungszeit schließlich fehlschlägt. Anstatt sich auf den Statuscode zu verlassen, der in den Antwort-Headern zurückgegeben wird, sollten Sie die Metadaten des Vorgangs mit langer Ausführungszeit im Text der Antwort parsen, um festzustellen, ob ein API-Aufruf erfolgreich war.
Wenn Sie beispielsweise eine Bulk-Wiederherstellungsanfrage für vorläufiges Löschen stellen, wird ein erfolgreicher HTTP-Statuscode (200 OK
) zurückgegeben, auch wenn während des Vorgangs ein Fehler auftritt. Um zu prüfen, ob der Bulk-Wiederherstellungsvorgang erfolgreich war, fragen Sie den Status des Vorgangs mit langer Ausführungszeit ab.
Beachten Sie, dass die APIs für Vorgänge mit langer Ausführungszeit (Get, List, Cancel) synchron sind und normale Fehler zurückgeben.