Nach Präfix filtern

Auf dieser Seite wird beschrieben, wie Sie Pfade mit ein- und ausschließenden Präfixen von Übertragungen ein- und ausschließen.

Informationen zum Erstellen eines Manifests für zu übertragende bestimmte Objekte finden Sie unter Bestimmte Dateien oder Objekte mithilfe eines Manifests übertragen.

Übersicht

Der Storage Transfer Service unterstützt die Verwendung von Präfixen, um auszuwählen, welche Dateien in die Datenquelle aufgenommen oder daraus 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 die Datenquellen Amazon S3, Microsoft Azure Blob Storage und Cloud Storage 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-Pfad s3://my-aws-bucket/logs/y=2015/requests.gz aufnehmen möchten, geben Sie das einschließende Präfix als logs/y=2015/requests.gz an.

  • Für ein- und ausschließende Präfixe werden Teilübereinstimmungen unterstützt. Beispielsweise führt path zu Übereinstimmungen mit path_1/ und path_2/.

  • Platzhalter werden nicht unterstützt.

  • Wenn Sie einen Ordner als Quellspeicherort angegeben haben, beziehen sich Präfixfilter auf diesen Ordner. Wenn Ihre Quelle beispielsweise gs://my-test-bucket/path/ ist, werden mit einem Einschlussfilter von file alle Dateien berücksichtigt, die mit gs://my-test-bucket/path/file beginnen.

  • Jedes Include-Präfix muss einen bestimmten Teil des Objekt-Namespace angeben. Kein Include-Präfix darf ein Präfix eines anderen Include-Präfixes sein. Sie können beispielsweise nicht sowohl path_1 als auch path_1/subpath_2 als Präfixe für einzuschließende Elemente 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 oder abc lauten.

  • Wenn Sie nur ausschließende Präfixe verwenden, können Sie beliebige Präfixwerte festlegen.

  • 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 mit der Cloud Console ein- 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 mit der gcloud CLI Präfixe ein- und ausschließen 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, ohne Leerzeichen nach den Kommas. Beispiel: --include-prefixes=foo,bar.

REST

Wenn Sie mit der REST API einzuschließende und auszuschließende Präfixe angeben möchten, verwenden Sie die Felder includePrefixes[] und excludePrefixes[]:

{
    "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 Include-Präfixe, um Storage Transfer Service anzuweisen, Objekte in den aufgelisteten Pfaden für die Übertragung zu berücksichtigen und Objekte zu ignorieren, die sich nicht unter diesen Pfaden befinden.

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_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

Sie können mehrere Pfade angeben, die einbezogen werden sollen. 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_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

Teilweise Übereinstimmungen werden unterstützt. Wenn Sie beispielsweise path als Wert für ein einschließendes Präfix angeben, werden die folgenden Objekte berücksichtigt:

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

Wenn Sie einschließende Präfixe verwenden, werden Pfade, die Sie nicht explizit einschließen, nicht in den Cloud Storage-Ziel-Bucket übertragen.

Präfixe ausschließen

Wenn Sie beim Erstellen einer Übertragung auszuschließende Präfixe verwenden, wird der Storage Transfer Service angewiesen, die aufgeführten Pfade für die Übertragung zu ignorieren.

Wenn Sie Objekte unter path_1/ ausschließen möchten, übergeben Sie Folgendes:

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_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

Sie können mehrere auszuschließende 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_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

Gleichzeitig Pfade ein- und ausschließen

Sie können ein ausschließendes Präfix und ein einschließendes Präfix zusammen anwenden. In diesem Fall wird mit dem ausschließenden Präfix begrenzt, was das einschließende Präfix in die Übertragung einschließt.

Wenn Sie beide Arten von Präfixen angeben, muss jedes ausschließende 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_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

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_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

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.

Pfad einschließen, der in einem anderen Include-Präfix verwendet wird

Jedes Include-Präfix sollte einen bestimmten 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.

Ausschließendes Präfix verwenden, das nicht mit einem einschließenden Präfix beginnt

Jedes ausschließende Präfix sollte mit einem der angegebenen Werte für einschließende Präfixe beginnen. Das folgende Beispiel ist falsch, da die Werte für das ausschließende Präfix nicht mit den angegebenen Werten für das einschließende Präfix beginnen:

include: path_1/
         path_2/
exclude: subpath_1
         subpath_4

In diesem Beispiel sind die Werte für ausschließende Präfixe ungültig, da sie nicht mit einem der Werte für einschließende Präfixe beginnen. Achten Sie zur Problembehebung darauf, dass das ausschließende Prä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.