Filter menurut awalan

Halaman ini menunjukkan cara menyertakan dan mengecualikan jalur dari transfer menggunakan awalan sertakan dan kecualikan.

Untuk mempelajari cara membuat manifes objek tertentu yang akan ditransfer, lihat Mentransfer file atau objek tertentu menggunakan manifes.

Ringkasan

Storage Transfer Service mendukung penggunaan awalan untuk memilih file yang akan disertakan atau dikecualikan dari sumber data. Anda dapat menggunakan awalan, mengecualikan awalan, atau keduanya.

Pemfilteran berdasarkan awalan didukung untuk sumber data Amazon S3, Microsoft Azure Blob Storage, dan Cloud Storage.

  • Jangan sertakan garis miring di awal di awal. Misalnya, untuk menyertakan objek requests.gz dalam transfer dari jalur bucket s3://my-aws-bucket/logs/y=2015/requests.gz berikut, tentukan awalan penyertaan sebagai logs/y=2015/requests.gz.

  • Kecocokan sebagian didukung untuk awalan sertakan dan kecualikan. Misalnya, path cocok dengan path_1/ dan path_2/.

  • Karakter pengganti tidak didukung.

  • Jika Anda menentukan folder sebagai lokasi sumber, filter awalan akan berhubungan dengan folder tersebut. Misalnya, jika sumber Anda adalah gs://my-test-bucket/path/, filter penyertaan file akan menyertakan semua file yang dimulai dengan gs://my-test-bucket/path/file.

  • Masing-masing awalan harus menyertakan bagian yang berbeda dari namespace objek. Tidak ada awalan penyertaan dapat menjadi awalan dari awalan penyertaan lainnya. Misalnya, Anda tidak boleh menentukan path_1 dan path_1/subpath_2 sebagai awalan yang disertakan.

  • Jika Anda menggunakan awalan sertakan dan mengecualikan awalan secara bersamaan, mengecualikan awalan harus diawali dengan nilai dari salah satu awalan penyertaan. Misalnya, jika Anda menentukan a sebagai awalan penyertaan, awalan pengecualian yang valid adalah a/b, aaa, dan abc.

  • Jika Anda hanya menggunakan pengecualian awalan, tidak ada pembatasan pada awalan yang dapat Anda gunakan.

  • Jika Anda tidak menentukan awalan apa pun, semua objek dalam bucket akan ditransfer.

Untuk mengetahui informasi umum lebih lanjut tentang awalan, lihat Mencantumkan Kunci secara Hierarkis Menggunakan Awalan dan Pemisah dalam dokumentasi Amazon S3 atau Metode daftar objek untuk Cloud Storage.

Cara menentukan awalan

Cloud Console

Untuk menentukan awalan yang disertakan dan mengecualikan awalan menggunakan Cloud Console, masukkan nilai saat membuat transfer baru atau saat memperbarui transfer yang ada.

gcloud CLI

Untuk menentukan awalan dan penyertaan menggunakan CLI gcloud, 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 sertakan dan mengecualikan awalan menggunakan REST API, gunakan kolom includePrefixes[] dan 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"
            ]
        }
    }
}

Untuk informasi selengkapnya, lihat referensi ObjectConditions.

Contoh objek dan jalur

Contoh dalam dokumen ini menggunakan objek dan jalur contoh berikut:

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

Sertakan awalan

Gunakan awalan sertakan saat membuat transfer untuk menginstruksikan Storage Transfer Service agar mempertimbangkan objek dalam jalur transfer yang tercantum, dan untuk mengabaikan objek yang tidak berada dalam jalur tersebut.

Misalnya, untuk menyertakan objek pada path_1/, gunakan awalan berikut:

path_1/

Ini mencakup objek langsung di bagian path_1/, path_1/subpath_1, dan path_1/subpath_2/. Objek berikut akan disertakan dalam transfer:

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

Anda dapat menentukan beberapa jalur untuk disertakan. Misalnya, Anda dapat meneruskan hal berikut:

path_1/subpath_2/
path_1/subpath_3/

Dalam hal ini, transfer menyertakan objek berikut:

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

Kecocokan sebagian didukung. Misalnya, menentukan path sebagai nilai awalan penyertaan akan cocok dengan objek berikut:

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

Saat Anda menggunakan awalan tersebut, jalur yang tidak Anda sertakan secara spesifik tidak akan ditransfer ke bucket tujuan Cloud Storage.

Kecualikan awalan

Menggunakan awalan kecualikan saat membuat transfer menginstruksikan Storage Transfer Service untuk mengabaikan jalur transfer yang tercantum untuk transfer.

Untuk mengecualikan objek pada bagian path_1/, teruskan awalan berikut:

path_1/

Hal ini tidak mencakup objek dalam path_1/, path_1/subpath_1/, dan path_1/subpath_2/. Dalam hal ini, objek berikut disertakan dalam transfer:

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

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 menyertakan objek berikut:

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

Menyertakan dan mengecualikan jalur secara bersamaan

Anda dapat menerapkan awalan pengecualian dan awalan penyertaan secara bersamaan, dalam hal ini awalan pengecualian membatasi apa yang disertakan oleh awalan penyertaan dalam transfer.

Saat menentukan kedua jenis awalan, setiap awalan pengecualian harus dimulai dengan jalur yang ditentukan dalam awalan include.

Misalnya, untuk menyertakan objek dalam path_1/ dan mengecualikan objek dalam subpath_1/, teruskan string berikut:

include: path_1/
exclude: path_1/subpath_1/

Dalam hal ini, transfer menyertakan objek berikut:

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

Untuk menyertakan semua objek dalam path_1/ dan path_2/, kecuali item dalam path_1/subpath_1/ atau path_2/subpath_3/, teruskan nilai berikut:

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

Dalam hal ini, transfer menyertakan objek berikut:

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

Contoh penyertaan atau pengecualian jalur yang salah

Bagian berikut menyertakan contoh yang harus dihindari saat menggunakan jalur sertakan atau kecualikan, serta cara memperbaikinya agar berfungsi dengan benar.

Menyertakan jalur yang digunakan di awalan penyertaan lainnya

Masing-masing awalan penyertaan harus menentukan bagian yang berbeda dari namespace objek. Contoh berikut salah karena nilai kedua sudah disertakan dalam namespace nilai pertama:

include: path_1/
         path_1/subpath_1

Dalam contoh ini, nilai awalan penyertaan tidak valid karena awalan include kedua, path_1/subpath_1, sudah disertakan dalam path_1/. Untuk memperbaikinya, hapus salah satu nilai tersebut.

Menggunakan awalan pengecualian yang tidak dimulai dengan awalan include

Setiap awalan pengecualian harus diawali dengan salah satu nilai awalan penyertaan yang ditentukan. Contoh berikut salah karena nilai awalan pengecualian tidak dimulai dengan nilai awalan penyertaan yang ditentukan:

include: path_1/
         path_2/
exclude: subpath_1
         subpath_4

Dalam contoh ini, nilai awalan kecualikan tidak valid karena tidak dimulai dengan salah satu nilai awalan penyertaan. Untuk memperbaiki masalah ini, pastikan awalan pengecualian menyertakan jalur lengkap yang tercantum sebagai awalan include:

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

Langkah selanjutnya