Auf dieser Seite wird beschrieben, wie Sie Pfade mithilfe von ein- und auszuschließenden Präfixen bei Übertragungen ein- und ausschließen.
Informationen zum Erstellen eines Manifests für bestimmte Objekte, die übertragen werden sollen, finden Sie unter Bestimmte Dateien oder Objekte mit einem Manifest übertragen.
Überblick
Storage Transfer Service unterstützt die Verwendung von Präfixen zur Auswahl der Dateien, die in die Datenquelle aufgenommen oder von ihr ausgeschlossen werden sollen. Sie können einschließende Präfixe, ausschließende Präfixe oder beides zusammen verwenden.
Das Filtern nach Präfix wird für Amazon S3-, Microsoft Azure Blob Storage- und Cloud Storage-Datenquellen unterstützt.
Lassen Sie bei der Eingabe eines Präfixes den Schrägstrich am Anfang weg. Wenn Sie beispielsweise das Objekt
requests.gz
in eine Übertragung aus dem Bucket-Pfads3://my-aws-bucket/logs/y=2015/requests.gz
aufnehmen möchten, geben Sie das einschließende Präfix alslogs/y=2015/requests.gz
an.Teilübereinstimmungen werden für einschließende und ausschließende Präfixe unterstützt. Beispiel:
path
stimmt mitpath_1/
undpath_2/
überein.Platzhalter werden nicht unterstützt.
Wenn Sie einen Ordner als Quellspeicherort angegeben haben, beziehen sich Präfixfilter auf diesen Ordner. Wenn die Quelle beispielsweise
gs://my-test-bucket/path/
ist, umfasst der Einschließen-Filterfile
alle Dateien, die mitgs://my-test-bucket/path/file
beginnen.Jedes einschließende Präfix muss einen eindeutigen Teil des Objekt-Namespace enthalten. Kein einschließendes Präfix darf ein Präfix eines anderen einschließenden Präfixes sein. Beispielsweise können Sie nicht sowohl
path_1
als auchpath_1/subpath_2
als einschließende Präfixe angeben.Wenn Sie einschließende und ausschließende Präfixe zusammen verwenden, müssen die ausschließenden Präfixe mit dem Wert eines der einschließenden Präfixe beginnen. Beispiel: Wenn Sie
a
als einschließendes Präfix festlegen, können die ausschließenden Präfixe z. B.a/b
,aaa
oderabc
lauten.Wenn Sie nur ausschließende Präfixe verwenden, gibt es keine Einschränkungen im Hinblick auf die Präfixe, die Sie verwenden können.
Wenn Sie keine Präfixe angeben, werden alle Objekte übertragen, die sich im Bucket befinden.
Allgemeine Informationen zu Präfixen finden Sie in der Amazon S3-Dokumentation unter Hierarchische Auflistung von Schlüsseln mit einem Präfix und einem Trennzeichen oder in der Objektlistemethode für Cloud Storage.
Präfixe angeben
Cloud Console
Wenn Sie Präfixe über die Cloud Console angeben oder ausschließen möchten, geben Sie die Werte beim Erstellen einer neuen Übertragung oder beim Aktualisieren einer vorhandenen Übertragung ein.
gcloud-CLI
Wenn Sie einschließende und ausschließende Präfixe mit der gcloud
-Befehlszeile angeben möchten, übergeben Sie die Flags --include-prefixes
und --exclude-prefixes
an den Befehl gcloud transfer jobs create
oder gcloud transfer jobs update
:
gcloud transfer jobs create SOURCE DESTINATION \
--include-prefixes="path_1/,path_2/" --exclude-prefixes="path_1/subpath_2/"
Trennen Sie mehrere Präfixe durch Kommas und lassen Sie die Leerzeichen nach den Kommas aus.
Beispiel: --include-prefixes=foo,bar
.
REST
Verwenden Sie die Felder includePrefixes[]
und excludePrefixes[]
, um einzuschließende und ausgeschlossene Präfixe mithilfe der REST API anzugeben:
{
"description": "YOUR DESCRIPTION",
"status": "ENABLED",
"projectId": "PROJECT_ID",
"schedule": {
"scheduleStartDate": {
"day": 1,
"month": 1,
"year": 2015
},
"startTimeOfDay": {
"hours": 1,
"minutes": 1
}
},
"transferSpec": {
"gcsDataSource": {
"bucketName": "GCS_SOURCE_NAME"
},
"gcsDataSink": {
"bucketName": "GCS_SINK_NAME"
},
"transferOptions": {
"deleteObjectsFromSourceAfterTransfer": true
},
"objectConditions": {
"includePrefixes": [
"path_1/",
"path_2/"
],
"excludePrefixes": [
"path_1/subpath_2/object_5"
]
}
}
}
Weitere Informationen finden Sie in der Referenz zu ObjectConditions
.
Beispielobjekte und -pfade
In den Beispielen in diesem Dokument werden die folgenden Beispielobjekte und -pfade verwendet:
xx://bucketname/object_1
xx://bucketname/object_2
xx://bucketname/path_1/object_3
xx://bucketname/path_2/object_4
xx://bucketname/path_1/subpath_1/object_5
xx://bucketname/path_1/subpath_2/object_6
xx://bucketname/path_2/subpath_3/object_7
xx://bucketname/path_2/subpath_4/object_8
Präfixe einschließen
Verwenden Sie beim Erstellen einer Übertragung die „Einschließen“-Präfixe, um den Storage Transfer Service anzuweisen, Objekte in den aufgeführten Pfaden für die Übertragung zu berücksichtigen und Objekte, die sich nicht unter diesen Pfaden befinden, zu ignorieren.
Wenn Sie beispielsweise Objekte unter path_1/
einschließen möchten, verwenden Sie das folgende Präfix:
path_1/
Dies gilt auch für Objekte direkt unter path_1/
, path_1/subpath_1
und path_1/subpath_2/
. Die folgenden Objekte sind in der Übertragung enthalten:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3xx://bucketname/path_2/object_4xx://bucketname/path_1/subpath_1/object_5 xx://bucketname/path_1/subpath_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Sie können mehrere einzuschließende Pfade angeben. Sie können beispielsweise Folgendes übergeben:
path_1/subpath_2/ path_1/subpath_3/
In diesem Fall umfasst die Übertragung die folgenden Objekte:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3xx://bucketname/path_2/object_4xx://bucketname/path_1/subpath_1/object_5xx://bucketname/path_1/subpath_2/object_6 xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Teilübereinstimmungen werden unterstützt. Wenn Sie beispielsweise path
als Wert eines einschließenden Präfixes angeben, entspricht dies den folgenden Objekten:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3 xx://bucketname/path_2/object_4 xx://bucketname/path_1/subpath_1/object_5 xx://bucketname/path_1/subpath_2/object_6 xx://bucketname/path_2/subpath_3/object_7 xx://bucketname/path_2/subpath_4/object_8
Wenn Sie einschließende Präfixe verwenden, werden Pfade, die Sie nicht ausdrücklich einschließen, nicht in den Cloud Storage-Ziel-Bucket übertragen.
Präfixe ausschließen
Wenn Sie beim Erstellen einer Übertragung Präfixe verwenden, wird Storage Transfer Service angewiesen, die aufgeführten Pfade für die Übertragung zu ignorieren.
Übergeben Sie das folgende Präfix, um Objekte unter path_1/
auszuschließen:
path_1/
Dies schließt Objekte unter path_1/
, path_1/subpath_1/
und path_1/subpath_2/
aus. In diesem Fall sind die folgenden Objekte in der Übertragung enthalten:
xx://bucketname/object_1 xx://bucketname/object_2xx://bucketname/path_1/object_3xx://bucketname/path_2/object_4xx://bucketname/path_1/subpath_1/object_5xx://bucketname/path_1/subpath_2/object_6xx://bucketname/path_2/subpath_3/object_7 xx://bucketname/path_2/subpath_4/object_8
Sie können mehrere auszuschließenden Pfade angeben. Sie können beispielsweise Folgendes übergeben:
path_1/subpath_2/
path_2/subpath_3/
In diesem Fall umfasst die Übertragung die folgenden Objekte:
xx://bucketname/object_1 xx://bucketname/object_2 xx://bucketname/path_1/object_3 xx://bucketname/path_2/object_4 xx://bucketname/path_1/subpath_1/object_5xx://bucketname/path_1/subpath_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Gleichzeitig Pfade ein- und ausschließen
Sie können ein „Ausschließen“-Präfix und ein „Einschließen“-Präfix zusammen anwenden. In diesem Fall schränkt das „Ausschließen“-Präfix ein, was das einschließende Präfix bei der Übertragung einschließt.
Wenn Sie beide Präfixtypen angeben, muss jedes ausgeschlossene Präfix mit einem Pfad beginnen, der in einem einschließenden Präfix angegeben ist.
Wenn Sie beispielsweise Objekte unter path_1/
einschließen und Objekte unter subpath_1/
ausschließen möchten, übergeben Sie Folgendes:
include: path_1/
exclude: path_1/subpath_1/
In diesem Fall umfasst die Übertragung die folgenden Objekte:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3xx://bucketname/path_2/object_4xx://bucketname/path_1/subpath_1/object_5xx://bucketname/path_1/subpath_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Wenn Sie alle Objekte unter path_1/
und path_2/
einschließen möchten, außer Elemente in path_1/subpath_1/
oder path_2/subpath_3/
, übergeben Sie Folgendes:
include: path_1/
path_2/
exclude: path_1/subpath_1/
path_2/subpath_3/
In diesem Fall umfasst die Übertragung die folgenden Objekte:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3 xx://bucketname/path_2/object_4xx://bucketname/path_1/subpath_1/object_5xx://bucketname/path_1/subpath_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Beispiele für falsches Einschließen oder Ausschließen von Pfaden
In den folgenden Abschnitten wird anhand von Beispielen beschrieben, wie Sie Pfade nicht ein- oder ausschließen sollten, und was Sie sie korrigieren müssen, damit die Beispiele ordnungsgemäß funktionieren.
Einen Pfad einschließen, der in einem anderen „Einschließen“-Präfix verwendet wird
Jedes einschließende Präfix sollte einen eindeutigen Teil des Objekt-Namespace angeben. Das folgende Beispiel ist falsch, da der zweite Wert bereits im Namespace des ersten Werts enthalten ist:
include: path_1/
path_1/subpath_1
In diesem Beispiel sind die Werte für das einschließende Präfix ungültig, da das zweite einschließende Präfix (path_1/subpath_1
) bereits in path_1/
enthalten ist.
Entfernen Sie einen der Werte, um das Problem zu beheben.
Ein Ausschlusspräfix verwenden, das nicht mit einem Einschlusspräfix beginnt
Jedes ausschließende Präfix muss mit einem der angegebenen Werte vom Typ „Einschließen“ beginnen. Das folgende Beispiel ist falsch, da die auszuschließenden Präfixwerte nicht mit den angegebenen einschließenden Präfixwerten beginnen:
include: path_1/
path_2/
exclude: subpath_1
subpath_4
In diesem Beispiel sind die auszuschließenden Präfixwerte ungültig, da sie nicht mit einem der einschließenden Präfixwerte beginnen. Um dieses Problem zu beheben, müssen Sie dafür sorgen, dass das Ausschlusspräfix einen vollständigen Pfad enthält, der als einschließendes Präfix aufgeführt ist:
include: path_1/
path_2/
exclude: path_1/subpath_1/
path_2/subpath_4/
Nächste Schritte
- Weitere Informationen zum Übertragen einer bestimmten Liste von Dateien oder Objekten finden Sie hier.