Storage Transfer Service-Jobs unterstützen Suchstrings mit Platzhalterzeichen wie * und ?, um Dateinamen oder Pfade abzugleichen. Diese Suchstrings werden als Glob-Muster bezeichnet.
Mit Glob-Mustern können Sie angeben, welche Quellobjekte in eine Übertragung einbezogen werden sollen. Dies ermöglicht eine detailliertere Steuerung als das alleinige Filtern nach Präfix.
Das Filtern mit Glob-Mustern wird für Übertragungen von AWS S3 und Azure unterstützt.
Glob-Syntax
Ein Glob-Muster verwendet die folgende Syntax, um Objektpfade abzugleichen:
| Syntax | Beschreibung |
|---|---|
? |
Stimmt mit einem beliebigen einzelnen Zeichen überein, mit Ausnahme von /. |
* |
Entspricht null oder mehr Zeichen, mit Ausnahme von /. |
** |
Entspricht null oder mehr Zeichen, einschließlich /. |
[abc]
|
Entspricht genau einem der Zeichen (z.B. a, b oder c). |
[a-z]
|
Entspricht genau einem Zeichen im inklusiven Bereich (z.B. a bis z). |
[!abc] oder [^abc]
|
Entspricht genau einem Zeichen, das nicht a, b oder c ist. |
{abc,xyz}
|
Entspricht einem der Strings (z.B. abc oder xyz). Darf keine Schrägstriche (/) oder doppelten Sternchen (**) enthalten. |
\?
|
Entspricht dem Literalzeichen nach dem Backslash (z.B. \? entspricht einem Literalzeichen ?). |
Beispielmuster
Alle .log-Dateien aus december-Verzeichnissen abgleichen:
logs_by_year/**/december/*.log
Alle Dateien im Verzeichnis data_analytics/ übertragen, die nicht mit einem . (Punkt) oder _ (Unterstrich) beginnen:
data_analytics/[!._]*
So machen Sie das vorherige Beispiel rekursiv:
data_analytics/**/[!._]*
Alle PDF-Dateien aus genau zwei bestimmten Verzeichnissen übertragen:
quarterly_reports/2025/{q1-final,q4-final}/*.pdf
Glob-Muster angeben
Sie können beim Erstellen oder Aktualisieren eines Übertragungsjobs ein Glob-Muster angeben.
gcloud-CLI
Wenn Sie mit der gcloud-CLI nach einem Glob-Muster filtern möchten, übergeben Sie das Flag --match-glob an den Befehl gcloud transfer jobs create oder gcloud transfer jobs update:
gcloud transfer jobs create SOURCE DESTINATION \
--match-glob="GLOB_PATTERN"
Beispiel:
Mit dem folgenden Befehl wird ein Job erstellt, der nur .log-Dateien aus december-Verzeichnissen überträgt:
gcloud transfer jobs create s3://my-source-bucket gs://my-sink-bucket \
--match-glob="logs_by_year/**/december/*.log"
REST
Wenn Sie mit der REST API nach einem Glob-Muster filtern möchten, geben Sie das Feld matchGlob im objectConditions Ihres transferSpec an.
{
"description": "Transfer December logs from all years",
"status": "ENABLED",
"projectId": "PROJECT_ID",
"transferSpec": {
"awsS3DataSource": {
"bucketName": "AWS_SOURCE_NAME",
"awsAccessKey": {
"accessKeyId": "AWS_ACCESS_KEY_ID",
"secretAccessKey": "AWS_SECRET_ACCESS_KEY"
}
},
"gcsDataSink": {
"bucketName": "DESTINATION_BUCKET"
},
"objectConditions": {
"matchGlob": "logs_by_year/**/december/*.log"
}
}
}
Weitere Informationen finden Sie in der Referenz zu ObjectConditions.
Google Cloud Console
Das Filtern nach Glob-Mustern wird in der Google Cloud Console nicht unterstützt.
Interaktion mit anderen Filtern
Wenn Sie einen Glob-Musterfilter mit Präfixfiltern oder Filtern für die letzte Änderungszeit verwenden, wendet Storage Transfer Service die Filter in der folgenden Reihenfolge an:
Präfixe einschließen: Schränkt die zu berücksichtigenden Objekte ein.
Objektbedingungen (Glob-Muster und Änderungszeit): Filtert die Objekte, die mit dem Include-Präfix übereinstimmen. Ein Objekt muss sowohl dem Glob-Filter als auch dem Filter für die Uhrzeit der letzten Änderung entsprechen, damit es im Ergebnis enthalten ist.
Präfixe ausschließen: Entfernt Objekte aus dem Ergebnis.
Weitere Informationen zum Filtern nach Präfix und zum Filtern nach Uhrzeit der letzten Änderung
Präfixe einschließen
Das Glob-Muster wird nur auf Objekte angewendet, die mit mindestens einem Include-Präfix übereinstimmen.
Der Storage Transfer Service gibt einen Fehler zurück, wenn Ihr Glob-Muster allen Präfixmustern für die Einbeziehung widerspricht.
Beispiel: Gültige Kombination
include_prefix:["foo/"]match_glob:"foo/bar/**"Ergebnis:Gültig. Der Dienst listet zuerst Objekte unter
foo/auf und wendet dann das Glob-Muster auf diese Liste an.
Beispiel: Gültige Kombination
include_prefix:["logs/2024/", "logs/2025/"]match_glob:"**/*.json"Ergebnis:Gültig. Der Dienst listet alle Objekte in den Verzeichnissen
2024und2025auf und überträgt dann nur die Dateien, die mit.jsonenden.
Beispiel: Widerspruch
include_prefix:["foo/"]match_glob:"bar/**"Ergebnis:Fehler. Das Muster
match_globkann nicht mit Objekten übereinstimmen, die voninclude_prefixausgewählt wurden.
Präfixe ausschließen
Der Filter für das Ausschlusspräfix wird nach dem Filter für das Einschlusspräfix und dem Filter für das Glob-Muster angewendet.
Es wird keine Widerspruchsprüfung durchgeführt. Alle Objekte, die mit einem Ausschlusspräfix übereinstimmen, werden aus der Übertragungsliste entfernt, auch wenn sie mit dem Glob-Muster übereinstimmen.
Beispiel
include_prefix:["logs/"]match_glob:"**/*.log"exclude_prefix:["logs/temp/"]Ergebnis:Der Dienst überträgt alle Objekte unter
logs/, die mit.logenden, mit Ausnahme der Objekte im Verzeichnislogs/temp/.