Filtra per prefisso

Questa pagina mostra come includere ed escludere i percorsi dai trasferimenti utilizzando i prefissi di inclusione ed esclusione.

Per scoprire come creare un manifest di oggetti specifici da trasferire, consulta Trasferire file o oggetti specifici utilizzando un manifest.

Panoramica

Storage Transfer Service supporta l'utilizzo di prefissi per selezionare i file da includere o escludere dall'origine dati. Puoi usare i prefissi inclusione, esclusione o entrambi insieme.

Il filtro per prefisso è supportato per le origini dati Amazon S3, Microsoft Azure Blob Storage e Cloud Storage.

  • Non includere la barra iniziale in un prefisso. Ad esempio, per includere requests.gz oggetto in un trasferimento dal seguente percorso del bucket s3://my-aws-bucket/logs/y=2015/requests.gz, specifica il prefisso di inclusione come logs/y=2015/requests.gz.

  • Le corrispondenze parziali sono supportate per i prefissi di inclusione ed esclusione. Ad esempio: path corrisponde a path_1/ e path_2/.

  • I caratteri jolly non sono supportati.

  • Se hai specificato una cartella come posizione di origine, i filtri per prefisso vengono rispetto a quella cartella. Ad esempio, se la tua origine è gs://my-test-bucket/path/, un filtro di inclusione di file include tutti i file che iniziano con gs://my-test-bucket/path/file.

  • Ogni prefisso di inclusione deve includere una parte distinta dello spazio dei nomi dell'oggetto. Nessun prefisso di inclusione può essere un prefisso di un altro prefisso di inclusione. Ad esempio, non puoi specificare sia path_1 che path_1/subpath_2 come prefisso di inclusione.

  • Se utilizzi i prefissi ed escludi i prefissi insieme, escludi I prefissi devono iniziare con il valore di uno dei prefissi da includere. Ad esempio, se specifichi a come prefisso di inclusione, i prefissi di esclusione validi sono a/b, aaa e abc.

  • Se utilizzi solo i prefissi da escludere, non sono previste limitazioni per i prefissi che puoi utilizzare.

  • Se non specifichi alcun prefisso, tutti gli oggetti nel bucket vengono trasferiti.

Per informazioni più generali sui prefissi, consulta Elenco delle chiavi in modo gerarchico utilizzando un prefisso e un delimitatore nella documentazione di Amazon S3 o il metodo dell'elenco di oggetti per Cloud Storage.

Come specificare i prefissi

console Cloud

Per specificare i prefissi di inclusione ed esclusione utilizzando la console Cloud, inserisci i valori durante la creazione di un nuovo trasferimento o l'aggiornamento di un trasferimento esistente.

Interfaccia a riga di comando gcloud

Per specificare i prefissi da includere ed escludere utilizzando l'interfaccia a riga di comando gcloud, passa i flag --include-prefixes e --exclude-prefixes al comando gcloud transfer jobs create o al comando gcloud transfer jobs update:

gcloud transfer jobs create SOURCE DESTINATION \
  --include-prefixes="path_1/,path_2/" --exclude-prefixes="path_1/subpath_2/"

Separa più prefissi con una virgola, omettendo gli spazi dopo le virgole. Ad esempio, --include-prefixes=foo,bar.

REST

Per specificare i prefissi di inclusione ed esclusione utilizzando l'API REST, utilizza i campi includePrefixes[] e 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"
            ]
        }
    }
}

Per ulteriori informazioni, fai riferimento al riferimento ObjectConditions.

Esempi di oggetti e percorsi

Gli esempi in questo documento utilizzano i seguenti oggetti e percorsi di esempio:

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

Includi prefissi

Durante la creazione di un trasferimento, utilizza i prefissi di inclusione per indicare Storage Transfer Service deve considerare gli oggetti nei percorsi elencati per il trasferimento, e ignorare gli oggetti al di fuori di questi percorsi.

Ad esempio, per includere gli oggetti in path_1/, utilizza il seguente prefisso:

path_1/

Sono inclusi gli oggetti direttamente sotto path_1/, path_1/subpath_1 e path_1/subpath_2/. Nel trasferimento sono inclusi i seguenti oggetti:

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

Puoi specificare più percorsi da includere. Ad esempio, puoi passare quanto segue:

path_1/subpath_2/
path_1/subpath_3/

In questo caso, il trasferimento include i seguenti oggetti:

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

Sono supportate le corrispondenze parziali. Ad esempio, se specifichi path come valore di un prefisso include, viene trovata una corrispondenza con i seguenti oggetti:

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

Quando utilizzi prefissi da includere, i percorsi che non includi in modo specifico non sono trasferiti nel bucket di destinazione Cloud Storage.

Escludi prefissi

L'utilizzo di prefissi da escludere durante la creazione di un trasferimento indica a Storage Transfer Service di ignorarne i percorsi elencati.

Per escludere oggetti in path_1/, trasmetti il seguente prefisso:

path_1/

Sono esclusi gli oggetti in path_1/, path_1/subpath_1/ e path_1/subpath_2/. In questo caso, gli oggetti seguenti sono inclusi nella trasferimento:

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

Puoi specificare più percorsi da escludere. Ad esempio, puoi passare le seguenti:

path_1/subpath_2/
path_2/subpath_3/

In questo caso, il trasferimento include i seguenti oggetti:

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

Includere ed escludere contemporaneamente i percorsi

Puoi applicare un prefisso di esclusione e un prefisso di inclusione insieme. In questo caso il prefisso di esclusione limita ciò che il prefisso di inclusione include nel trasferimento.

Quando specifichi entrambi i tipi di prefisso, ogni prefisso di esclusione deve iniziare con un percorso specificato in un prefisso di inclusione.

Ad esempio, per includere gli oggetti in path_1/ ed escludere quelli in subpath_1/, passa quanto segue:

include: path_1/
exclude: path_1/subpath_1/

In questo caso, il trasferimento include i seguenti oggetti:

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

Per includere tutti gli oggetti in path_1/ e path_2/, tranne gli elementi in path_1/subpath_1/ o path_2/subpath_3/, supera quanto segue:

include: path_1/
         path_2/
exclude: path_1/subpath_1/
         path_2/subpath_3/

In questo caso, il trasferimento include i seguenti oggetti:

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

Esempi di inclusione o esclusione di percorsi errati

Le seguenti sezioni includono esempi da evitare quando utilizzi i comandi di inclusione o esclusione percorsi e come correggerli in modo che funzionino correttamente.

Inclusione di un percorso utilizzato in un altro prefisso include

Ogni prefisso di inclusione deve specificare una parte distinta dello spazio dei nomi dell'oggetto. Il seguente esempio non è corretto perché il secondo valore è già incluso nel nome dello spazio dei nomi del primo valore:

include: path_1/
         path_1/subpath_1

In questo esempio, i valori del prefisso di inclusione non sono validi perché il secondo Includi prefisso, path_1/subpath_1, è già incluso in path_1/. Per risolvere il problema, rimuovi uno dei valori.

Utilizzo di un prefisso di esclusione che non inizia con un prefisso di inclusione

Ogni prefisso di esclusione deve iniziare con uno qualsiasi del prefisso di inclusione specificato e i relativi valori. L'esempio seguente non è corretto perché i valori del prefisso di esclusione non iniziano con i valori del prefisso di inclusione specificati:

include: path_1/
         path_2/
exclude: subpath_1
         subpath_4

In questo esempio, i valori del prefisso di esclusione non sono validi perché non iniziano con uno dei due valori di prefisso. Per risolvere il problema, assicurati che il prefisso di esclusione includa un percorso completo elencato come prefisso di inclusione:

include: path_1/
         path_2/
exclude: path_1/subpath_1/
         path_2/subpath_4/

Passaggi successivi