Questa pagina mostra come includere ed escludere percorsi dai trasferimenti utilizzando i prefissi di inclusione ed esclusione.
Per scoprire come creare un manifest di oggetti specifici da trasferire, consulta Trasferimento di file o oggetti specifici utilizzando un manifest.
Panoramica
Storage Transfer Service supporta l'uso di prefissi per selezionare i file da includere o escludere dall'origine dati. Puoi usare i prefissi da includere, escludere prefissi o entrambi insieme.
Il filtro per prefisso è supportato per Amazon S3, Microsoft Azure Blob Storage e origini dati Cloud Storage.
Non includere la barra iniziale in un prefisso. Ad esempio, per includere l'oggetto
requests.gz
in un trasferimento dal seguente percorso del buckets3://my-aws-bucket/logs/y=2015/requests.gz
, specifica il prefisso di inclusione comelogs/y=2015/requests.gz
.Le corrispondenze parziali sono supportate per i prefissi di inclusione ed esclusione. Ad esempio,
path
corrisponde apath_1/
epath_2/
.I caratteri jolly non sono supportati.
Se hai specificato una cartella come posizione di origine, i filtri per il prefisso sono relativi a questa cartella. Ad esempio, se l'origine è
gs://my-test-bucket/path/
, un filtro di inclusione difile
include tutti i file che iniziano congs://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
chepath_1/subpath_2
come prefissi inclusi.Se utilizzi i prefissi di inclusione e quelli di esclusione, i prefissi di esclusione devono iniziare con il valore di uno dei prefissi di inclusione. Ad esempio, se specifichi
a
come prefisso di inclusione, i prefissi di esclusione validi sonoa/b
,aaa
eabc
.Se utilizzi solo i prefissi da escludere, non esistono limitazioni relative ai 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 con prefisso e delimitatore nella documentazione di Amazon S3 oppure il metodo dell'elenco degli oggetti per Cloud Storage.
Come specificare i prefissi
console Cloud
Per specificare prefissi di inclusione ed esclusione utilizzando la console Cloud, inserisci i valori durante la creazione di un nuovo trasferimento o durante l'aggiornamento di un trasferimento esistente.
Interfaccia a riga di comando gcloud
Per specificare i prefissi di inclusione ed esclusione 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 virgole, omettendo gli spazi dopo le virgole.
Ad esempio, --include-prefixes=foo,bar
.
REST
Per specificare 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 saperne di più, consulta la documentazione di ObjectConditions
.
Oggetti e percorsi di esempio
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
Utilizza i prefissi di inclusione durante la creazione di un trasferimento per indicare a Storage Transfer Service di prendere in considerazione gli oggetti per il trasferimento presenti nei percorsi elencati e di ignorare gli oggetti non compresi in questi percorsi.
Ad esempio, per includere gli oggetti in path_1/
, utilizza il seguente prefisso:
path_1/
Sono inclusi gli oggetti che si trovano direttamente in path_1/
, path_1/subpath_1
e path_1/subpath_2/
. Nel trasferimento sono inclusi i seguenti oggetti:
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
Puoi specificare più percorsi da includere. Ad esempio, puoi trasmettere quanto segue:
path_1/subpath_2/ path_1/subpath_3/
In questo caso, il trasferimento include i seguenti oggetti:
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
Sono supportate le corrispondenze parziali. Ad esempio, specificare path
come valore di
un prefisso di inclusione corrisponde ai seguenti oggetti:
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
Quando utilizzi i prefissi da includere, i percorsi non inclusi in modo specifico non vengono trasferiti nel bucket di destinazione Cloud Storage.
Escludi prefissi
L'uso dei prefissi di esclusione durante la creazione di un trasferimento indica a Storage Transfer Service di ignorare i percorsi di trasferimento elencati.
Per escludere gli oggetti in path_1/
, passa il seguente prefisso:
path_1/
Sono esclusi gli oggetti in path_1/
, path_1/subpath_1/
e
path_1/subpath_2/
. In questo caso, il trasferimento include i seguenti oggetti:
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
Puoi specificare più percorsi da escludere. Ad esempio, puoi trasmettere quanto segue:
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_5xx://bucketname/path_1/subpath_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Inclusione ed esclusione di percorsi contemporaneamente
Puoi applicare un prefisso di esclusione e un prefisso di inclusione insieme, nel qual 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 oggetti in
subpath_1/
, viene eseguito quanto segue:
include: path_1/
exclude: path_1/subpath_1/
In questo caso, il trasferimento include i seguenti oggetti:
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
Per includere tutti gli oggetti in path_1/
e path_2/
, ad eccezione degli elementi in
path_1/subpath_1/
o path_2/subpath_3/
, trasmetti 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_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
Esempi di inclusione o esclusione errata di un percorso
Le seguenti sezioni includono esempi da evitare quando utilizzi percorsi di inclusione o esclusione e come correggerli in modo che funzionino correttamente.
Includere un percorso utilizzato in un altro prefisso di inclusione
Ogni prefisso di inclusione deve specificare una parte distinta dello spazio dei nomi dell'oggetto. L'esempio seguente non è corretto perché il secondo valore è già incluso nello 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 prefisso di inclusione, path_1/subpath_1
, è già incluso in path_1/
.
Per risolvere il problema, rimuovi uno dei valori.
Utilizzare un prefisso di esclusione che non inizi con un prefisso di inclusione
Ogni prefisso di esclusione deve iniziare con uno qualsiasi dei valori del prefisso di inclusione specificati. L'esempio seguente non è corretto perché i valori di esclusione prefisso non iniziano con i valori di 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 nessuno dei valori del prefisso di inclusione. 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
- Scopri come trasferire un elenco specifico di file o oggetti.