Tugas Storage Transfer Service mendukung string penelusuran dengan karakter pengganti seperti
* dan ? untuk mencocokkan nama file atau jalur. String penelusuran ini disebut pola glob.
Anda dapat menggunakan pola glob untuk menentukan objek sumber mana yang akan disertakan dalam transfer. Hal ini memungkinkan kontrol yang lebih terperinci daripada hanya memfilter menurut awalan.
Pemfilteran dengan pola glob didukung untuk transfer dari AWS S3 dan Azure.
Sintaksis glob
Pola glob menggunakan sintaksis berikut untuk mencocokkan jalur objek:
| Sintaksis | Deskripsi |
|---|---|
? |
Mencocokkan karakter tunggal apa pun, kecuali /. |
* |
Mencocokkan nol karakter atau lebih, tidak termasuk /. |
** |
Mencocokkan nol karakter atau lebih, termasuk /. |
[abc]
|
Mencocokkan tepat satu karakter (misalnya, a, b, atau c). |
[a-z]
|
Mencocokkan tepat satu karakter dalam rentang inklusif
(misalnya, a hingga z). |
[!abc] atau [^abc]
|
Mencocokkan tepat satu karakter yang bukan a, b, atau c. |
{abc,xyz}
|
Mencocokkan salah satu string (misalnya, abc atau xyz). Tidak boleh berisi garis miring (/) atau dua tanda bintang (**). |
\?
|
Mencocokkan karakter literal setelah garis miring terbalik
(misalnya, \? cocok dengan ? literal). |
Pola contoh
Mencocokkan semua file .log dari direktori december:
logs_by_year/**/december/*.log
Transfer semua file di direktori data_analytics/ yang tidak diawali dengan
. (titik) atau _ (garis bawah):
data_analytics/[!._]*
Untuk membuat contoh sebelumnya menjadi rekursif:
data_analytics/**/[!._]*
Transfer semua file PDF dari tepat dua direktori tertentu:
quarterly_reports/2025/{q1-final,q4-final}/*.pdf
Menentukan pola glob
Anda dapat menentukan pola glob saat membuat atau memperbarui tugas transfer.
gcloud CLI
Untuk memfilter menurut pola glob menggunakan CLI gcloud, teruskan flag --match-glob
ke perintah gcloud transfer jobs create atau gcloud transfer jobs update:
gcloud transfer jobs create SOURCE DESTINATION \
--match-glob="GLOB_PATTERN"
Contoh:
Perintah berikut membuat tugas yang hanya mentransfer file .log dari
direktori december:
gcloud transfer jobs create s3://my-source-bucket gs://my-sink-bucket \
--match-glob="logs_by_year/**/december/*.log"
REST
Untuk memfilter menurut pola glob menggunakan REST API, tentukan kolom matchGlob
di objectConditions transferSpec Anda.
{
"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"
}
}
}
Untuk informasi selengkapnya, lihat referensi ObjectConditions.
Konsol Google Cloud
Pemfilteran menurut pola glob tidak didukung di konsol Google Cloud.
Interaksi dengan filter lain
Saat Anda menggunakan filter pola glob dengan filter awalan atau filter waktu diubah terakhir kali, Storage Transfer Service menerapkan filter dalam urutan berikut:
Sertakan awalan: Mempersempit objek yang akan dipertimbangkan.
Kondisi objek (pola glob dan waktu diubah terakhir kali): Memfilter objek yang cocok dengan awalan sertakan. Objek harus cocok dengan filter glob dan filter waktu terakhir diubah agar disertakan dalam hasil.
Mengecualikan awalan: Menghapus objek dari hasil.
Pelajari lebih lanjut pemfilteran menurut awalan dan pemfilteran menurut waktu terakhir diubah.
Sertakan awalan
Pola glob hanya diterapkan pada objek yang cocok dengan setidaknya satu awalan sertakan.
Storage Transfer Service akan menampilkan error jika pola glob Anda bertentangan dengan semua pola awalan sertakan.
Contoh: Kombinasi yang valid
include_prefix:["foo/"]match_glob:"foo/bar/**"Hasil: Valid. Layanan ini terlebih dahulu mencantumkan objek di bagian
foo/, lalu menerapkan pola glob ke daftar tersebut.
Contoh: Kombinasi yang valid
include_prefix:["logs/2024/", "logs/2025/"]match_glob:"**/*.json"Hasil: Valid. Layanan ini mencantumkan semua objek di direktori
2024dan2025, lalu hanya mentransfer file yang diakhiri dengan.json.
Contoh: Kontradiksi
include_prefix:["foo/"]match_glob:"bar/**"Hasil: Error. Pola
match_globtidak dapat mencocokkan objek yang dipilih olehinclude_prefix.
Mengecualikan awalan
Filter awalan pengecualian diterapkan setelah filter awalan penyertaan dan filter pola glob.
Tidak ada pemeriksaan kontradiksi yang dilakukan. Objek apa pun yang cocok dengan awalan pengecualian dihapus dari daftar transfer, meskipun cocok dengan pola glob.
Contoh
include_prefix:["logs/"]match_glob:"**/*.log"exclude_prefix:["logs/temp/"]Hasil: Layanan mentransfer semua objek di bawah
logs/yang diakhiri dengan.log, kecuali yang ada di direktorilogs/temp/.