Nach Präfix filtern

Auf dieser Seite wird beschrieben, wie Sie Pfade bei der Übertragung ein- und ausschließen. Präfixe ein- und ausschließen.

Informationen zum Erstellen eines Manifests bestimmter zu übertragender Objekte finden Sie unter Bestimmte Dateien oder Objekte mithilfe eines Manifests übertragen

Übersicht

Storage Transfer Service unterstützt die Verwendung von Präfixen zur Auswahl der Dateien Daten in die Datenquelle ein- oder daraus auszuschließen. Sie können „Einschließen-Präfixe“, Präfixe oder beide Präfixe zusammen.

Das Filtern nach Präfix wird unterstützt für Amazon S3-, Microsoft Azure Blob Storage- und Cloud Storage-Datenquellen.

  • 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.

  • Teilweise Übereinstimmungen werden für einzuschließende und auszuschließende Präfixe unterstützt. Beispiel: path stimmt mit path_1/ und path_2/ überein.

  • Platzhalter werden nicht unterstützt.

  • Wenn Sie einen Ordner als Quellspeicherort angegeben haben, sind Präfixfilter relativ zu diesem Ordner. Beispiel: Ihre Quelle ist gs://my-test-bucket/path/, der Einschließen-Filter von file schließt alle Dateien ein beginnend mit gs://my-test-bucket/path/file.

  • Jedes einschließende Präfix muss einen bestimmten Teil des Objekt-Namespace enthalten. Kein einschließendes Präfix darf ein Präfix eines anderen einschließenden Präfixes sein. Beispiel: Sie können nicht sowohl path_1 als auch path_1/subpath_2 als Einschließen angeben. Präfixe.

  • 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, gibt es keine Einschränkungen für 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 unter Hierarchische Auflistung von Schlüsseln mit einem Präfix und Trennzeichen in der Amazon S3-Dokumentation oder der Objektlistenmethode für Cloud Storage.

Präfixe angeben

Cloud Console

So legen Sie ein- und ausgeschlossene Präfixe mithilfe der Cloud Console, geben Sie die Werte ein, wenn Sie eine neue Übertragung erstellen oder beim Aktualisieren einer vorhandenen Übertragung.

gcloud-CLI

Um Präfixe zum Einschließen oder Ausschließen mithilfe der gcloud CLI anzugeben, übergeben Sie die Flags --include-prefixes und --exclude-prefixes an den gcloud transfer jobs create-Befehl oder gcloud transfer jobs update Befehl:

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 Leerzeichen nach den Kommas weg. Beispiel: --include-prefixes=foo,bar.

REST

Verwenden Sie zum Angeben von einschließenden und auszuschließenden Präfixen mithilfe der REST API die includePrefixes[]- und excludePrefixes[]-Felder:

{
    "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 „Einschließen“-Präfixe, um Storage Transfer Service, um Objekte in den aufgeführten Pfaden für die Übertragung, und Objekte ignorieren, die nicht unter diesen Pfaden liegen.

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 eingeschlossen werden sollen. Sie können beispielsweise Folgendes:

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 z. B. path als Wert für Ein einschließendes Präfix entspricht den folgenden Objekten:

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, sind Pfade, die Sie nicht explizit einschließen, an den Cloud Storage-Ziel-Bucket übertragen werden.

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 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_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 ausgeschlossen werden sollen. Sie können beispielsweise Folgendes:

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 und ein einschließendes Präfix zusammen anwenden. In diesem Fall Mit dem Ausschließen-Präfix wird festgelegt, was das einschließende Präfix übertragen werden.

Wenn Sie beide Präfixtypen angeben, muss jedes ausgeschlossene Präfix mit einem Pfad, der mit 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.

Einen Pfad einschließen, der in einem anderen einschließenden Präfix verwendet wird

Jedes einschließende 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 „Einschließen“-Präfixwerte ungültig, Das Präfix path_1/subpath_1 ist bereits in path_1/ enthalten. Entfernen Sie einen der Werte, um das Problem zu beheben.

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

Jedes ausgeschlossene Präfix muss mit einem beliebigen der angegebenen einschließenden Präfixe beginnen Werte. Das folgende Beispiel ist falsch, da die auszuschließenden Präfixwerte nicht mit den angegebenen „Einschließen“-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 beginnen mit einem der einschließenden Präfixwerte. Um dieses Problem zu beheben, Achten Sie 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.