Panduan ini menjelaskan cara menggunakan awalan sertakan dan kecualikan untuk mengontrol file yang ditransfer.
Ringkasan
Storage Transfer Service mendukung pemfilteran data dari sumber Amazon S3, Microsoft Azure Blob Storage, dan Cloud Storage menggunakan awalan. Awalan adalah string karakter di awal jalur yang menentukan sekumpulan objek.
Anda dapat menggunakan filter awalan dengan tiga cara:
Awalan sertakan: Hanya objek yang cocok dengan awalan yang ditentukan yang ditransfer.
Awalan kecualikan: Objek yang cocok dengan awalan yang ditentukan akan dihilangkan dari transfer.
Keduanya bersama-sama: Anda dapat menggunakan awalan sertakan dan kecualikan secara bersamaan untuk kontrol yang lebih terperinci. Jika digunakan bersama-sama, setiap awalan kecualikan harus dimulai dengan salah satu awalan sertakan yang ditentukan.
Jika Anda tidak menentukan awalan apa pun, semua objek di bucket sumber akan ditransfer.
Aturan
Aturan berikut berlaku untuk awalan:
Tidak ada garis miring di awal: Jangan sertakan garis miring di awal dalam awalan. Untuk jalur
s3://my-bucket/logs/2025/requests.gz, awalan yang benar adalahlogs/2025/requests.gz.Kecocokan sebagian: Awalan berfungsi dengan kecocokan sebagian. Misalnya, awalan
pathcocok denganpath_1/danpath_2/.Tidak ada karakter pengganti: Karakter pengganti tidak didukung.
Relatif terhadap folder sumber: Jika sumber transfer Anda menyertakan jalur atau folder, awalan akan relatif terhadap jalur atau folder tersebut. Lihat Interaksi dengan jalur atau folder sumber untuk mengetahui detailnya.
Awalan sertakan yang berbeda: Setiap awalan sertakan harus menentukan bagian unik dari namespace objek. Anda tidak dapat menggunakan awalan sertakan yang sudah tercakup oleh awalan sertakan lainnya. Misalnya, Anda tidak dapat menentukan keduanya
data/dandata/reports/sebagai awalan sertakan.Dependensi awalan kecualikan: Saat menggunakan awalan sertakan dan kecualikan bersama-sama, setiap awalan kecualikan harus dimulai dengan salah satu awalan sertakan yang ditentukan. Misalnya, jika
pathadalah awalan sertakan, awalan kecualikan yang valid dapat berupapath/bataupathway. Aturan ini tidak berlaku jika Anda hanya menggunakan awalan kecualikan.Maksimum 1.000 awalan: Satu tugas transfer mendukung hingga 1.000 awalan. Anda dapat membagi transfer menjadi beberapa tugas jika awalan tambahan diperlukan.
Untuk informasi yang lebih umum tentang awalan, lihat Mencantumkan Kunci Secara Hierarkis Menggunakan Awalan dan Pembatas dalam dokumentasi Amazon S3 atau metode daftar Objek untuk Cloud Storage.
Interaksi dengan jenis filter lainnya
Saat Anda menggunakan beberapa filter, Storage Transfer Service akan menerapkannya dalam urutan berikut:
Awalan sertakan: Mempersempit objek yang akan dipertimbangkan.
Kondisi objek (waktu terakhir diubah): Memfilter objek yang cocok dengan awalan sertakan. Objek harus cocok dengan filter terakhir diubah agar disertakan dalam hasil.
Awalan kecualikan: Menghapus objek dari hasil.
Interaksi dengan jalur atau folder sumber
Filter sertakan dan kecualikan bersifat relatif terhadap jalur atau folder yang Anda tentukan untuk sumber.
Misalnya, jika sumber Anda adalah gs://bucketA/alpha, dan Anda ingin menentukan
filter untuk gs://bucketA/alpha/beta:
Benar
- Jalur sumber:
gs://bucketA/alpha - Awalan kecualikan:
beta/ - Hasil: Ini dengan benar mengecualikan
gs://bucketA/alpha/beta
Salah
- Jalur sumber:
gs://bucketA/alpha - Awalan kecualikan:
alpha/beta/ - Hasil: Ini salah menentukan filter untuk
gs://bucketA/alpha/alpha/beta
Menentukan awalan
Konsol Google Cloud
Untuk menentukan awalan sertakan dan kecualikan menggunakan konsol Google Cloud, masukkan nilai saat membuat transfer baru atau saat memperbarui transfer yang ada.
gcloud CLI
Untuk menentukan awalan sertakan dan kecualikan menggunakan gcloud CLI, teruskan flag
--include-prefixes dan --exclude-prefixes ke perintah
gcloud transfer jobs create atau perintah gcloud transfer jobs update:
gcloud transfer jobs create SOURCE DESTINATION \
--include-prefixes="path_1/,path_2/" --exclude-prefixes="path_1/subpath_2/"
Pisahkan beberapa awalan dengan koma, tanpa spasi setelah koma.
Misalnya, --include-prefixes="foo,bar".
REST
Untuk menentukan awalan sertakan dan kecualikan menggunakan REST API, gunakan kolom includePrefixes[] dan excludePrefixes[]:
{
"description": "Transfer with prefixes",
"status": "ENABLED",
"projectId": "PROJECT_ID",
"schedule": {
"scheduleStartDate": {
"day": 1,
"month": 1,
"year": 2015
},
"startTimeOfDay": {
"hours": 1,
"minutes": 1
}
},
"transferSpec": {
"gcsDataSource": {
"bucketName": "SOURCE_BUCKET"
},
"gcsDataSink": {
"bucketName": "DESTINATION_BUCKET"
},
"transferOptions": {
"deleteObjectsFromSourceAfterTransfer": true
},
"objectConditions": {
"includePrefixes": [
"path_1/",
"path_2/"
],
"excludePrefixes": [
"path_1/subpath_2/object_5"
]
}
}
}
Untuk mengetahui informasi selengkapnya, lihat referensi ObjectConditions.
Contoh objek dan jalur
Contoh berikut menggunakan daftar contoh objek ini:
xx://bucketname/object_1
xx://bucketname/object_2
xx://bucketname/path_1/object_3
xx://bucketname/path_1/subpath_1/object_4
xx://bucketname/path_1/subpath_2/object_5
xx://bucketname/path_2/object_6
xx://bucketname/path_2/subpath_3/object_7
xx://bucketname/path_2/subpath_4/object_8
Menggunakan awalan sertakan
Untuk mentransfer hanya objek di bawah path_1/, gunakan awalan berikut:
path_1/
Hal ini mencakup objek di bawah path_1/. Objek berikut disertakan dalam transfer:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3 xx://bucketname/path_1/subpath_1/object_4 xx://bucketname/path_1/subpath_2/object_5xx://bucketname/path_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Anda dapat menentukan beberapa jalur untuk disertakan. Misalnya, Anda dapat meneruskan hal berikut:
path_1/subpath_2/ path_2/subpath_3/
Dalam hal ini, transfer mencakup objek berikut:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3xx://bucketname/path_1/subpath_1/object_4xx://bucketname/path_1/subpath_2/object_5xx://bucketname/path_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Kecocokan sebagian didukung. Contoh:
path
Objek berikut ditransfer:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3 xx://bucketname/path_1/subpath_1/object_4 xx://bucketname/path_1/subpath_2/object_5 xx://bucketname/path_2/object_6 xx://bucketname/path_2/subpath_3/object_7 xx://bucketname/path_2/subpath_4/object_8
Saat Anda menggunakan awalan sertakan, jalur yang tidak Anda sertakan secara khusus tidak akan ditransfer ke bucket tujuan Cloud Storage.
Awalan kecualikan
Menggunakan awalan kecualikan saat membuat transfer akan menginstruksikan Storage Transfer Service untuk mengabaikan jalur yang tercantum untuk transfer.
Untuk mengecualikan objek di bawah path_1/, teruskan awalan berikut:
path_1/
Hal ini mengecualikan objek di bawah path_1/. Dalam hal ini, objek berikut disertakan dalam transfer:
xx://bucketname/object_1 xx://bucketname/object_2xx://bucketname/path_1/object_3xx://bucketname/path_1/subpath_1/object_4xx://bucketname/path_1/subpath_2/object_5xx://bucketname/path_2/object_6 xx://bucketname/path_2/subpath_3/object_7 xx://bucketname/path_2/subpath_4/object_8
Anda dapat menentukan beberapa jalur untuk dikecualikan. Misalnya, Anda dapat meneruskan hal berikut:
path_1/subpath_2/
path_2/subpath_3/
Dalam hal ini, transfer mencakup objek berikut:
xx://bucketname/object_1 xx://bucketname/object_2 xx://bucketname/path_1/object_3 xx://bucketname/path_1/subpath_1/object_4xx://bucketname/path_1/subpath_2/object_5xx://bucketname/path_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Menyertakan dan mengecualikan jalur secara bersamaan
Anda dapat menerapkan awalan kecualikan dan awalan sertakan secara bersamaan. Dalam hal ini, awalan kecualikan membatasi apa yang disertakan oleh awalan sertakan dalam transfer.
Saat menentukan kedua jenis awalan, setiap awalan kecualikan harus dimulai dengan jalur yang ditentukan dalam awalan sertakan.
Misalnya, untuk menyertakan objek di bawah path_1/ dan mengecualikan objek di bawah
subpath_1/, teruskan hal berikut:
include: path_1/
exclude: path_1/subpath_1/
Dalam hal ini, transfer mencakup objek berikut:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3xx://bucketname/path_1/subpath_1/object_4xx://bucketname/path_1/subpath_2/object_5xx://bucketname/path_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Untuk menyertakan semua objek di bawah path_1/ dan path_2/, kecuali item di
path_1/subpath_1/ atau path_2/subpath_3/, teruskan hal berikut:
include: path_1/
path_2/
exclude: path_1/subpath_1/
path_2/subpath_3/
Dalam hal ini, transfer mencakup objek berikut:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3xx://bucketname/path_1/subpath_1/object_4xx://bucketname/path_1/subpath_2/object_5 xx://bucketname/path_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Kesalahan umum yang harus dihindari
Berikut adalah contoh konfigurasi yang salah dan cara memperbaikinya.
Menyertakan jalur yang digunakan dalam awalan sertakan lainnya
Awalan sertakan tidak dapat berupa subdirektori dari awalan sertakan lainnya.
Salah: Awalan path_1/subpath_1 sudah tercakup oleh path_1/.
include: path_1/
path_1/subpath_1
Benar: Untuk memperbaikinya, hapus awalan yang berlebihan dan lebih spesifik.
include: path_1/
Awalan kecualikan tidak cocok dengan awalan sertakan
Jika digunakan bersama-sama, awalan kecualikan harus dimulai dengan salah satu awalan sertakan.
Salah: Awalan subpath_1 tidak dimulai dengan path_1/ atau
path_2/.
include: path_1/
path_2/
exclude: subpath_1
Benar: Pastikan awalan kecualikan berisi jalur lengkap dari awalan sertakan.
include: path_1/
path_2/
exclude: path_1/subpath_1/