I job Storage Transfer Service supportano stringhe di ricerca con caratteri jolly come
* e ? per trovare corrispondenze con nomi o percorsi di file. Queste stringhe di ricerca sono chiamate
pattern glob.
Puoi utilizzare i pattern glob per specificare gli oggetti di origine da includere in un trasferimento. Ciò consente un controllo più granulare rispetto al filtraggio in base al solo prefisso.
Il filtro con pattern glob è supportato per i trasferimenti da AWS S3 e Azure.
Sintassi glob
Un pattern glob utilizza la seguente sintassi per trovare corrispondenze con i percorsi degli oggetti:
| Sintassi | Descrizione |
|---|---|
? |
Corrisponde a qualsiasi singolo carattere, escluso /. |
* |
Corrisponde a zero o più caratteri, escluso /. |
** |
Corrisponde a zero o più caratteri, incluso /. |
[abc]
|
Corrisponde esattamente a uno dei caratteri (ad es. a, b
o c). |
[a-z]
|
Corrisponde esattamente a un carattere nell'intervallo inclusivo
(ad es. da a a z). |
[!abc] o [^abc]
|
Corrisponde esattamente a un carattere che
non è a, b o c. |
{abc,xyz}
|
Corrisponde a una delle stringhe (ad es. abc o xyz). Non può
contenere barre (/) o doppi asterischi (**). |
\?
|
Corrisponde al carattere letterale dopo la barra rovesciata
(ad es. \? corrisponde a ? letterale). |
Pattern di esempio
Corrispondenza di tutti i file .log delle directory december:
logs_by_year/**/december/*.log
Trasferisci tutti i file nella directory data_analytics/ che non iniziano con un
. (punto) o un _ (trattino basso):
data_analytics/[!._]*
Per rendere ricorsivo l'esempio precedente:
data_analytics/**/[!._]*
Trasferisci tutti i file PDF da esattamente due directory specifiche:
quarterly_reports/2025/{q1-final,q4-final}/*.pdf
Specifica un pattern glob
Puoi specificare un pattern glob durante la creazione o l'aggiornamento di un job di trasferimento.
gcloud CLI
Per filtrare in base al pattern glob utilizzando la CLI gcloud, passa il flag --match-glob
al comando gcloud transfer jobs create o gcloud transfer jobs update:
gcloud transfer jobs create SOURCE DESTINATION \
--match-glob="GLOB_PATTERN"
Esempio:
Il comando seguente crea un job che trasferisce solo i file .log dalle directory december:
gcloud transfer jobs create s3://my-source-bucket gs://my-sink-bucket \
--match-glob="logs_by_year/**/december/*.log"
REST
Per filtrare in base al pattern glob utilizzando l'API REST, specifica il campo matchGlob
nel objectConditions del transferSpec.
{
"description": "Transfer December logs from all years",
"status": "ENABLED",
"projectId": "PROJECT_ID",
"transferSpec": {
"awsS3DataSource": {
"bucketName": "AWS_SOURCE_NAME",
"awsAccessKey": {
"accessKeyId": "AWS_ACCESS_KEY_ID",
"secretAccessKey": "AWS_SECRET_ACCESS_KEY"
}
},
"gcsDataSink": {
"bucketName": "DESTINATION_BUCKET"
},
"objectConditions": {
"matchGlob": "logs_by_year/**/december/*.log"
}
}
}
Per saperne di più, consulta il riferimento ObjectConditions.
Console Google Cloud
Il filtro per pattern glob non è supportato nella console Google Cloud.
Interazione con altri filtri
Quando utilizzi un filtro con pattern glob con filtri per prefisso o filtri per l'ora dell'ultima modifica, Storage Transfer Service applica i filtri nel seguente ordine:
Includi prefissi: limita gli oggetti da prendere in considerazione.
Condizioni oggetto (pattern glob e ora dell'ultima modifica): filtra gli oggetti che corrispondono al prefisso di inclusione. Un oggetto deve corrispondere sia al filtro glob che al filtro dell'ora dell'ultima modifica per essere incluso nel risultato.
Escludi prefissi: rimuove gli oggetti dal risultato.
Scopri di più su filtri per prefisso e filtri per ora ultima modifica.
Includi prefissi
Il pattern glob viene applicato solo agli oggetti che corrispondono ad almeno un prefisso di inclusione.
Storage Transfer Service restituisce un errore se il pattern glob contraddice tutti i pattern del prefisso di inclusione.
Esempio: combinazione valida
include_prefix:["foo/"]match_glob:"foo/bar/**"Risultato: valido. Il servizio elenca prima gli oggetti in
foo/e poi applica il pattern glob a questo elenco.
Esempio: combinazione valida
include_prefix:["logs/2024/", "logs/2025/"]match_glob:"**/*.json"Risultato: valido. Il servizio elenca tutti gli oggetti nelle directory
2024e2025e poi trasferisce solo i file che terminano con.json.
Esempio: contraddizione
include_prefix:["foo/"]match_glob:"bar/**"Risultato: errore. Il pattern
match_globnon può corrispondere a nessun oggetto selezionato dainclude_prefix.
Escludi prefissi
Il filtro del prefisso di esclusione viene applicato dopo il filtro del prefisso di inclusione e il filtro del pattern glob.
Non viene eseguito alcun controllo di contraddizione. Qualsiasi oggetto che corrisponde a un prefisso di esclusione viene rimosso dall'elenco di trasferimento, anche se corrispondeva al pattern glob.
Esempio
include_prefix:["logs/"]match_glob:"**/*.log"exclude_prefix:["logs/temp/"]Risultato: il servizio trasferisce tutti gli oggetti in
logs/che terminano con.log, ad eccezione di quelli nella directorylogs/temp/.