Memfilter objek sumber menurut waktu modifikasi

Anda dapat memfilter objek yang akan ditransfer berdasarkan waktu modifikasi terakhirnya. Dengan opsi ini, Anda hanya dapat mentransfer objek yang diubah:

  • Sebelum atau setelah tanggal dan waktu tertentu
  • Sebelum atau setelah jumlah waktu yang telah berlalu tertentu relatif terhadap tugas transfer

Fitur ini berguna untuk menyiapkan transfer inkremental atau untuk melewati objek yang berada di luar rentang waktu.

Pemfilteran menurut waktu terakhir diubah didukung untuk transfer dari semua sumber, kecuali daftar URL.

Filter berbasis waktu

Pemfilteran ditentukan dengan nilai last modified since, last modified before, minimum time elapsed since modified, dan maximum time elapsed since modified. Anda dapat menggunakan filter satu per satu, atau bersama-sama untuk membuat jangka waktu.

Kolom Deskripsi
Terakhir diubah sejak Mencakup objek dalam transfer yang terakhir diubah pada atau setelah stempel waktu ini.
Terakhir diubah sebelum Menyertakan objek dalam transfer yang terakhir diubah sebelum stempel waktu ini.
Waktu minimum yang berlalu sejak diubah Mencakup objek dalam transfer yang terakhir diubah setidaknya selama ini. Misalnya, filter ini dapat digunakan untuk menyertakan hanya objek yang diubah setidaknya satu bulan yang lalu. Objek tanpa "waktu perubahan terakhir" juga ditransfer.
Waktu maksimum yang berlalu sejak diubah Mencakup objek dalam transfer yang terakhir diubah tidak lebih dari jangka waktu ini. Misalnya, filter ini dapat digunakan untuk menyertakan hanya objek yang telah diubah dalam 7 hari terakhir. Objek tanpa "waktu perubahan terakhir" juga ditransfer.

Menentukan filter berbasis waktu

Anda dapat menentukan filter waktu modifikasi saat membuat atau memperbarui tugas transfer.

Stempel waktu harus dalam UTC dan diformat sebagai string RFC 3339 (misalnya, 2025-10-31T10:00:00Z). Durasi menggunakan format durasi absolut (misalnya, 1m untuk 1 bulan; 1h30m untuk 1 jam 30 menit).

Konsol Google Cloud

Untuk menentukan filter waktu di konsol Google Cloud:

  1. Buka halaman Create transfer job atau Edit transfer job.
  2. Di bagian Pilih data yang akan ditransfer, pilih Tanggal & waktu sebagai Jenis filter.
  3. Masukkan tanggal dan waktu untuk Rentang waktu absolut atau durasi untuk Rentang waktu relatif. Beberapa filter dapat ditentukan bersama.

gcloud CLI

Untuk memfilter menurut waktu modifikasi menggunakan gcloud CLI, teruskan flag filter berbasis waktu ke perintah gcloud transfer jobs create atau gcloud transfer jobs update:

gcloud transfer jobs create SOURCE DESTINATION \
  --include-modified-before-absolute="DATETIME" \
  --include-modified-after-absolute="DATETIME" \
  --include-modified-before-relative="DURATION" \
  --include-modified-after-relative="DURATION"

Dengan:

  • --include-modified-before-absolute mencakup objek yang terakhir diubah sebelum tanggal/waktu absolut. Misalnya, dengan menentukan 2020-01-01, transfer mencakup objek yang terakhir diubah sebelum 1 Januari 2020. Gunakan format tanggal dan waktu %Y-%m-%dT%H:%M:%S%z.
  • --include-modified-after-absolute menyertakan objek yang terakhir diubah setelah tanggal/waktu absolut. Misalnya, dengan menentukan '2020-01-01', transfer mencakup objek yang terakhir diubah setelah 1 Januari 2020. Gunakan format tanggal dan waktu %Y-%m-%dT%H:%M:%S%z.
  • --include-modified-before-relative mencakup objek yang diubah di luar jangka waktu yang ditentukan. Misalnya, menentukan durasi 10d akan mentransfer objek yang terakhir diubah lebih dari 10 hari sebelum waktu mulai transfer. Gunakan format durasi absolut. Misalnya, 1m selama 1 bulan; 1h30m selama 1 jam 30 menit.
  • --include-modified-after-relative menyertakan objek yang diubah dalam jangka waktu tertentu. Misalnya, menentukan durasi 10d akan mentransfer objek yang terakhir diubah kurang dari 10 hari sebelum waktu mulai transfer. Gunakan format durasi absolut. Misalnya, 1m selama 1 bulan; 1h30m selama 1 jam 30 menit.

Contoh (diubah setelah):

Perintah berikut hanya mentransfer objek yang diubah pada atau setelah 1 Oktober 2025.

gcloud transfer jobs create gs://my-source-bucket gs://my-sink-bucket
  --include-modified-after-absolute="2025-10-01T00:00:00Z"

Contoh (jangka waktu):

Perintah berikut hanya mentransfer objek yang diubah selama bulan Oktober 2025.

gcloud transfer jobs create gs://my-source-bucket gs://my-sink-bucket
  --include-modified-after-absolute="2025-10-01T00:00:00Z"
  --include-modified-before-absolute="2025-11-01T00:00:00Z"

Contoh (waktu yang telah berlalu):

Perintah berikut hanya mentransfer objek yang diubah dalam 7 hari terakhir.

gcloud transfer jobs create gs://my-source-bucket gs://my-sink-bucket
  --include-modified-after-relative="7d"

REST

Untuk memfilter menurut waktu modifikasi menggunakan REST API, tentukan kolom filter berbasis waktu di objectConditions transferSpec.

{
  "description": "DESCRIPTION",
  "status": "ENABLED",
  "projectId": "PROJECT_ID",
  "transferSpec": {
    "gcsDataSource": {
      "bucketName": "SOURCE_BUCKET"
    },
    "gcsDataSink": {
      "bucketName": "DESTINATION_BUCKET"
    },
    "objectConditions": {
      "lastModifiedBefore": "DATETIME",
      "lastModifiedSince": "DATETIME",
      "minTimeElapsedSinceLastModification": "DURATION",
      "maxTimeElapsedSinceLastModification": "DURATION",

    }
  }
}

Dengan:

  • lastModifiedBefore mencakup objek yang terakhir diubah sebelum tanggal/waktu absolut. Misalnya, dengan menentukan 2020-01-01, transfer mencakup objek yang terakhir diubah sebelum 1 Januari 2020. Gunakan format tanggal dan waktu %Y-%m-%dT%H:%M:%S%z.
  • lastModifiedSince menyertakan objek yang terakhir diubah setelah tanggal/waktu absolut. Misalnya, dengan menentukan '2020-01-01', transfer mencakup objek yang terakhir diubah setelah 1 Januari 2020. Gunakan format tanggal dan waktu %Y-%m-%dT%H:%M:%S%z.
  • minTimeElapsedSinceLastModification mencakup objek yang diubah di luar jangka waktu yang ditentukan. Misalnya, menentukan durasi 10d akan mentransfer objek yang terakhir diubah lebih dari 10 hari sebelum waktu mulai transfer. Gunakan format durasi absolut. Misalnya, 1m selama 1 bulan; 1h30m selama 1 jam 30 menit.
  • maxTimeElapsedSinceLastModification menyertakan objek yang diubah dalam jangka waktu tertentu. Misalnya, menentukan durasi 10d akan mentransfer objek yang terakhir diubah kurang dari 10 hari sebelum waktu mulai transfer. Gunakan format durasi absolut. Misalnya, 1m selama 1 bulan; 1h30m selama 1 jam 30 menit.

Contoh (jangka waktu):

Isi JSON berikut mengonfigurasi tugas untuk mentransfer hanya objek yang diubah selama bulan Oktober 2025.

{
  "description": "Transfer October 2025 data",
  "status": "ENABLED",
  "projectId": "PROJECT_ID",
  "transferSpec": {
    "gcsDataSource": {
      "bucketName": "SOURCE_BUCKET"
    },
    "gcsDataSink": {
      "bucketName": "DESTINATION_BUCKET"
    },
    "objectConditions": {
      "lastModifiedSince": "2025-10-01T00:00:00Z",
      "lastModifiedBefore": "2025-11-01T00:00:00Z"
    }
  }
}

Untuk mengetahui informasi selengkapnya, lihat referensi ObjectConditions.

Interaksi dengan filter lain

Saat Anda menggunakan beberapa filter, Storage Transfer Service akan menerapkannya dalam urutan berikut:

  1. Sertakan awalan: Mempersempit objek yang akan dipertimbangkan.

  2. Kondisi objek (waktu terakhir diubah): Memfilter objek yang cocok dengan awalan sertakan.

  3. Mengecualikan awalan: Menghapus objek dari hasil.

Pelajari lebih lanjut cara memfilter menurut awalan.

Contoh: Menggabungkan semua filter

Misalkan Anda memiliki konfigurasi filter berikut:

  • include_prefix: "logs/"
  • lastModifiedSince: "2025-10-31T00:00:00Z"
  • exclude_prefix: "logs/temp/"

Hasil: Layanan akan menjalankan transfer sebagai berikut:

  1. Pertama, hanya mempertimbangkan objek di direktori logs/.
  2. Selanjutnya, objek akan mencari objek yang diubah pada atau setelah 31 Oktober 2025.
  3. Terakhir, fungsi ini akan menghapus semua objek dari daftar tersebut yang ada di direktori logs/temp/.