Filter menurut awalan

Halaman ini menunjukkan cara menyertakan dan mengecualikan jalur dari transfer menggunakan awalan serta pengecualian.

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 yang disertakan, awalan yang dikecualikan, atau keduanya secara bersamaan.

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

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

  • Pencocokan parsial 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 bersifat relatif terhadap folder tersebut. Misalnya, jika sumber Anda adalah gs://my-test-bucket/path/, filter sertakan file akan menyertakan semua file yang diawali dengan gs://my-test-bucket/path/file.

  • Setiap awalan include harus menyertakan bagian yang berbeda dari namespace objek. Tidak ada awalan include yang dapat berupa awalan awalan include lainnya. Misalnya, Anda tidak boleh menentukan path_1 dan path_1/subpath_2 sebagai awalan penyertaan.

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

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

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

Untuk informasi umum selengkapnya 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 dikecualikan menggunakan konsol Cloud, masukkan nilai saat membuat transfer baru atau saat memperbarui transfer yang ada.

gcloud CLI

Untuk menentukan awalan yang disertakan dan dikecualikan 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 awalan yang disertakan dan dikecualikan 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 contoh objek dan jalur 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 awalan

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

Misalnya, untuk menyertakan objek di bagian path_1/, gunakan awalan berikut:

path_1/

Hal ini mencakup objek yang langsung berada di bawah path_1/, path_1/subpath_1, dan path_1/subpath_2/. 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 yang akan disertakan. Misalnya, Anda dapat meneruskan hal berikut:

path_1/subpath_2/
path_1/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_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

Pencocokan parsial 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 penyertaan, jalur yang tidak Anda sertakan secara khusus tidak akan ditransfer ke bucket tujuan Cloud Storage.

Kecualikan awalan

Menggunakan awalan pengecualian saat membuat transfer akan memerintahkan Storage Transfer Service untuk mengabaikan jalur yang tercantum untuk transfer.

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

path_1/

Hal ini tidak mencakup objek di bagian 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 yang akan 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_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 akan 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 penyertaan.

Misalnya, untuk menyertakan objek di bagian path_1/ dan mengecualikan objek di bagian subpath_1/, teruskan hal berikut:

include: path_1/
exclude: path_1/subpath_1/

Dalam hal ini, transfer mencakup 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 di bagian 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_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 yang disertakan atau dikecualikan, dan cara memperbaikinya agar berfungsi dengan benar.

Menyertakan jalur yang digunakan dalam awalan include lain

Setiap awalan include 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 include tidak valid karena awalan include kedua, path_1/subpath_1, sudah disertakan dalam path_1/. Untuk memperbaikinya, hapus salah satu nilai.

Menggunakan awalan pengecualian yang tidak diawali dengan awalan penyertaan

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 pengecualian tidak valid karena tidak dimulai dengan salah satu nilai awalan penyertaan. Untuk memperbaikinya, pastikan awalan pengecualian menyertakan jalur lengkap yang tercantum sebagai awalan penyertaan:

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

Langkah selanjutnya