Melakukan transfer antar bucket Cloud Storage

Storage Transfer Service dapat digunakan untuk mentransfer data dalam jumlah besar antar-bucket Cloud Storage, baik dalam project Google Cloud yang sama, maupun antar-project yang berbeda.

Migrasi bucket berguna dalam sejumlah skenario. Migrasi bucket dapat digunakan untuk mengonsolidasikan data dari project terpisah, memindahkan data ke lokasi cadangan, atau mengubah lokasi data Anda.

Kapan harus menggunakan Storage Transfer Service

Google Cloud menawarkan beberapa opsi untuk mentransfer data antar-bucket Cloud Storage. Sebaiknya ikuti panduan berikut:

  • Mentransfer data kurang dari 1 TB: Gunakan gcloud. Untuk mengetahui petunjuknya, lihat Memindahkan dan mengganti nama bucket.

  • Mentransfer data lebih dari 1 TB: Gunakan Storage Transfer Service. Storage Transfer Service adalah opsi transfer terkelola yang menyediakan keamanan, keandalan, dan performa siap pakai. Dengan Storage Transfer Service, Anda tidak perlu mengoptimalkan dan memelihara skrip, serta menangani percobaan ulang.

Panduan ini membahas praktik terbaik saat mentransfer data antar-bucket Cloud Storage menggunakan Storage Transfer Service.

Menentukan strategi transfer

Tampilan strategi transfer Anda bergantung pada kompleksitas situasi Anda. Pastikan untuk menyertakan pertimbangan berikut dalam rencana Anda.

Memilih nama bucket

Untuk memindahkan data Anda ke bucket penyimpanan dengan lokasi yang berbeda, pilih salah satu pendekatan berikut:

  • Nama bucket baru. Perbarui aplikasi Anda agar mengarah ke bucket penyimpanan dengan nama yang berbeda.
  • Pertahankan nama bucket. Ganti bucket penyimpanan Anda untuk mempertahankan nama saat ini, yang berarti Anda tidak perlu memperbarui aplikasi Anda.

Dalam kedua kasus tersebut, Anda harus merencanakan periode nonaktif, dan memberi pengguna Anda pemberitahuan yang sesuai bahwa periode nonaktif akan datang. Tinjau penjelasan berikut untuk memahami pilihan mana yang terbaik bagi Anda.

Nama bucket baru

Dengan nama bucket baru, Anda harus memperbarui semua kode dan layanan yang menggunakan bucket Anda saat ini. Cara Anda melakukannya bergantung pada cara aplikasi Anda dibuat dan di-deploy.

Untuk penyiapan tertentu, pendekatan ini mungkin memiliki periode nonaktif yang lebih singkat, tetapi memerlukan lebih banyak pekerjaan untuk memastikan transisi yang lancar. Pendekatan ini melibatkan langkah-langkah berikut:

  1. Menyalin data Anda ke bucket penyimpanan baru.
  2. Memulai periode nonaktif Anda.
  3. Memperbarui aplikasi Anda agar mengarah ke bucket baru.
  4. Memverifikasi bahwa semuanya berfungsi seperti yang diharapkan, dan bahwa semua sistem dan akun yang relevan memiliki akses ke bucket.
  5. Menghapus bucket asli.
  6. Mengakhiri periode nonaktif Anda.

Pertahankan nama bucket

Gunakan pendekatan ini jika Anda lebih suka tidak mengubah kode Anda agar mengarah ke nama bucket baru. Pendekatan ini melibatkan langkah-langkah berikut:

  1. Menyalin data Anda ke bucket penyimpanan sementara.
  2. Memulai periode nonaktif Anda.
  3. Menghapus bucket asli Anda.
  4. Membuat bucket baru dengan nama yang sama dengan bucket asli Anda.
  5. Menyalin data ke bucket baru Anda dari bucket sementara.
  6. Menghapus bucket sementara.
  7. Memverifikasi bahwa semuanya berfungsi seperti yang diharapkan, dan bahwa semua sistem dan akun yang relevan memiliki akses ke bucket.
  8. Mengakhiri periode nonaktif Anda.

Meminimalkan periode nonaktif

Storage Transfer Service tidak mengunci operasi baca atau tulis pada bucket sumber atau tujuan selama transfer.

Jika Anda memilih untuk mengunci operasi baca/tulis secara manual di bucket Anda, Anda dapat meminimalkan periode nonaktif dengan mentransfer data Anda dalam dua langkah: seeding dan sinkronisasi.

  1. Transfer seeding: Lakukan transfer massal tanpa mengunci operasi baca/tulis di sumber.

  2. Transfer sinkronisasi: Setelah proses pertama selesai, kunci operasi baca/tulis di bucket sumber dan lakukan transfer lain. Transfer Storage Transfer Service bersifat inkremental secara default, sehingga transfer kedua ini hanya mentransfer data yang berubah selama transfer seeding.

Mengoptimalkan kecepatan transfer

Saat memperkirakan durasi tugas transfer, pertimbangkan kemungkinan bottleneck. Misalnya, jika sumber memiliki miliaran file kecil, kecepatan transfer Anda akan terikat QPS. Jika ukuran objek besar, bandwidth mungkin menjadi bottleneck.

Batas bandwidth ditetapkan di tingkat region dan dialokasikan secara adil di semua project. Jika bandwidth yang cukup tersedia, Storage Transfer Service dapat menyelesaikan sekitar 1.000 tugas per tugas transfer per detik. Dalam hal ini, Anda dapat mempercepat transfer dengan membagi tugas Anda menjadi beberapa tugas transfer kecil, misalnya dengan menggunakan awalan sertakan dan kecualikan untuk mentransfer file tertentu.

Jika lokasi, kelas penyimpanan, dan kunci enkripsi sama, Storage Transfer Service tidak akan membuat salinan byte baru. Sebagai gantinya, Storage Transfer Service akan membuat entri metadata baru yang mengarah ke blob sumber. Hasilnya, salinan corpus besar dengan lokasi dan kelas yang sama akan selesai dengan sangat cepat dan hanya terikat QPS.

Operasi penghapusan juga merupakan operasi khusus metadata. Untuk transfer ini, melakukan paralel transfer dengan membaginya menjadi beberapa tugas kecil dapat meningkatkan kecepatan.

Mempertahankan metadata

Metadata objek berikut dipertahankan saat mentransfer data antar-bucket Cloud Storage dengan Storage Transfer Service:

  • Metadata kustom yang dibuat pengguna.
  • Kolom metadata kunci tetap Cloud Storage, seperti Cache-Control, Content-Disposition, Content-Type, dan Custom-Time.
  • Ukuran objek.
  • Nomor generasi dipertahankan sebagai kolom metadata kustom dengan kunci x-goog-reserved-source-generation, yang dapat Anda edit atau hapus nanti.

Kolom metadata berikut dapat dipertahankan secara opsional saat mentransfer menggunakan API:

  • ACL (acl)
  • Kelas penyimpanan (storageClass)
  • CMEK (kmsKey)
  • Penangguhan sementara (temporaryHold)
  • Waktu pembuatan objek (customTime)

Lihat referensi API TransferSpec untuk mengetahui detail selengkapnya.

Kolom metadata berikut tidak dipertahankan:

  • Waktu terakhir diperbarui (updated)
  • etag
  • componentCount

Jika dipertahankan, waktu pembuatan objek akan disimpan sebagai kolom kustom, customTime. Waktu updated objek akan direset saat transfer, sehingga waktu yang dihabiskan objek di kelas penyimpanannya juga akan direset. Artinya, objek di Coldline Storage, setelah transfer, harus ada lagi selama 90 hari di tujuan untuk menghindari biaya penghapusan awal.

Anda dapat menerapkan kebijakan siklus proses berbasis createTime menggunakan customTime. Nilai customTime yang ada akan ditimpa.

Untuk mengetahui detail selengkapnya tentang apa yang dipertahankan dan tidak dipertahankan, lihat Penyimpanan metadata.

Menangani objek berversi

Jika Anda ingin mentransfer semua versi objek penyimpanan Anda, bukan hanya versi terbaru, Anda dapat menggunakan fitur manifes Storage Transfer Service.

Untuk mentransfer semua versi objek:

  1. Buat daftar objek bucket dan salin ke dalam file JSON:

    gcloud storage ls --all-versions --recursive --json [SOURCE_BUCKET] > object-listing.json
    

    Perintah ini biasanya mencantumkan sekitar 1.000 objek per detik.

  2. Salin objek non-saat ini ke dalam file CSV:

    jq -r '.[] | select( .type=="cloud_object" and (.metadata | has("timeDeleted"))) | [.metadata.name, .metadata.generation] | @csv' object-listing.json > non-current-object-manifest.csv
    
  3. Aktifkan pembuatan versi objek di bucket tujuan.

  4. Transfer versi non-saat ini dengan opsi transfer berikut:

    • Tentukan file manifes.
    • Pilih untuk selalu menimpa objek di sink (OVERWRITE_WHEN=always). Perhatikan bahwa hal ini dapat membuat versi duplikat file dalam kasus yang jarang terjadi.
    • Pertahankan metadata timeCreated (MetdataOptions.timeCreated=TIME_CREATED_PRESERVE_AS_CUSTOM_TIME).
  5. Transfer versi aktif menggunakan tugas transfer reguler.

Mengonfigurasi opsi transfer

Beberapa opsi yang tersedia saat Anda menyiapkan transfer adalah sebagai berikut:

  • Logging: Cloud Logging menyediakan log mendetail dari setiap objek, sehingga Anda dapat memverifikasi status transfer dan melakukan pemeriksaan integritas data tambahan.

  • Pemfilteran: Anda dapat menggunakan awalan sertakan dan kecualikan untuk membatasi objek yang dioperasikan oleh Storage Transfer Service. Opsi ini dapat digunakan untuk membagi transfer menjadi beberapa tugas transfer sehingga dapat berjalan secara paralel. Lihat Mengoptimalkan kecepatan transfer untuk mengetahui informasi selengkapnya.

  • Opsi transfer: Anda dapat mengonfigurasi transfer untuk menimpa item yang ada di bucket tujuan; menghapus objek di tujuan yang tidak ada di set transfer; atau menghapus objek yang ditransfer dari sumber.

Mentransfer data

Setelah menentukan strategi transfer, Anda dapat melakukan transfer itu sendiri.

Membuat bucket baru

Sebelum memulai transfer, buat bucket penyimpanan. Lihat location_considerations untuk mendapatkan bantuan dalam memilih lokasi bucket yang sesuai.

Anda mungkin ingin menyalin beberapa metadata bucket saat membuat bucket baru. Lihat Mendapatkan metadata bucket untuk mempelajari cara menampilkan metadata bucket sumber, sehingga Anda dapat menerapkan setelan yang sama ke bucket baru Anda.

Menyalin objek ke bucket baru

Anda dapat menyalin objek dari bucket sumber ke bucket baru menggunakan Google Cloud konsol, gcloud CLI, REST API, atau library klien. Pendekatan yang Anda pilih bergantung pada strategi transfer Anda.

Petunjuk berikut adalah untuk kasus penggunaan dasar mentransfer objek dari satu bucket ke bucket lain, dan harus diubah agar sesuai dengan kebutuhan Anda.

Jangan menyertakan informasi sensitif seperti informasi identitas pribadi (PII) atau data keamanan di nama tugas transfer Anda. Nama resource dapat disebarkan ke nama resource Google Cloud lainnya dan dapat diekspos ke sistem internal Google di luar project Anda.

Google Cloud Konsol

Gunakan Cloud Storage Transfer Service dari dalam Google Cloud konsol:

  1. Buka halaman Transfer di Google Cloud konsol.

    Buka halaman Transfer

  2. Klik Buat tugas transfer.
  3. Ikuti panduan langkah demi langkah, dengan mengklik Langkah berikutnya saat Anda menyelesaikan setiap langkah:

    • Mulai: Gunakan Google Cloud Storage sebagai Jenis Sumber dan Jenis Tujuan.

    • Pilih sumber: Masukkan nama bucket yang diinginkan secara langsung, atau klik Jelajahi untuk menemukan dan memilih bucket yang Anda inginkan.

    • Pilih tujuan: Masukkan nama bucket yang diinginkan secara langsung, atau klik Jelajahi untuk menemukan dan memilih bucket yang Anda inginkan.

    • Pilih setelan: Pilih opsi Hapus file dari sumber setelah file ditransfer.

    • Opsi penjadwalan: Anda dapat mengabaikan bagian ini.

  4. Setelah menyelesaikan panduan langkah demi langkah, klik Buat.

    Tindakan ini akan memulai proses penyalinan objek dari bucket lama ke bucket baru. Proses ini mungkin memakan waktu. Namun, setelah mengklik Buat, Anda dapat keluar dari Google Cloud konsol.

    Untuk melihat progres transfer:

    Buka halaman Transfer di Google Cloud konsol.

    Buka halaman Transfer

    Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Storage Transfer Service yang gagal di Google Cloud konsol, lihat Pemecahan masalah.

  5. Setelah transfer selesai, Anda tidak perlu melakukan apa pun untuk menghapus objek dari bucket lama jika telah mencentang kotak Hapus objek sumber setelah transfer selesai selama penyiapan. Namun, Anda mungkin juga ingin menghapus bucket lama, yang harus dilakukan secara terpisah.

gcloud CLI

Menginstal gcloud CLI

Jika belum, instal alat command line gcloud.

Kemudian, panggil gcloud init untuk menginisialisasi alat dan menentukan ID project serta akun pengguna Anda. Lihat Menginisialisasi gcloud CLI untuk mengetahui detail selengkapnya.

gcloud init

Menambahkan akun layanan ke folder tujuan Anda

Anda harus menambahkan akun layanan Storage Transfer Service ke bucket tujuan Anda sebelum membuat transfer. Untuk melakukannya, gunakan gcloud storage buckets add-iam-policy-binding:

gcloud storage buckets add-iam-policy-binding gs://bucket_name \
--member=serviceAccount:project-12345678@storage-transfer-service.iam.gserviceaccount.com \
--role=roles/storage.admin

Untuk mengetahui petunjuk penggunaan Google Cloud konsol atau API, lihat Menggunakan izin IAM dalam dokumentasi Cloud Storage.

Membuat tugas transfer

Untuk membuat tugas transfer baru, gunakan perintah gcloud transfer jobs create. Membuat tugas baru akan memulai transfer yang ditentukan, kecuali jika jadwal atau --do-not-run ditentukan.

gcloud transfer jobs create SOURCE DESTINATION

Ganti kode berikut:

  • SOURCE adalah sumber data untuk transfer ini, dalam format gs://BUCKET_NAME.

  • DESTINATION adalah bucket baru Anda, dalam bentuk gs://BUCKET_NAME.

Opsi tambahan mencakup:

  • Informasi tugas: Anda dapat menentukan --name dan --description.

  • Jadwal: Tentukan --schedule-starts, --schedule-repeats-every, dan --schedule-repeats-until, atau --do-not-run.

  • Kondisi objek: Gunakan kondisi untuk menentukan objek mana yang ditransfer. Kondisi ini mencakup --include-prefixes, --exclude-prefixes, dan --match-glob, serta kondisi berbasis waktu di --include-modified-[before | after]-[absolute | relative].

  • Opsi transfer: Tentukan apakah akan menimpa file tujuan (--overwrite-when=different atau always) dan apakah akan menghapus file tertentu file selama atau setelah transfer (--delete-from=destination-if-unique atau source-after-transfer); tentukan nilai metadata yang akan dipertahankan (--preserve-metadata); dan secara opsional tetapkan kelas penyimpanan pada objek yang ditransfer (--custom-storage-class).

  • Notifikasi: Konfigurasi notifikasi Pub/Sub untuk transfer dengan --notification-pubsub-topic, --notification-event-types, dan --notification-payload-format.

Untuk melihat semua opsi, jalankan gcloud transfer jobs create --help.

Misalnya, untuk mentransfer semua objek dengan awalan folder1:

gcloud transfer jobs create gs://old-bucket gs://new-bucket \
  --include-prefixes="folder1/"

REST

Dalam contoh ini, Anda akan mempelajari cara memindahkan file dari satu bucket Cloud Storage ke bucket lain. Misalnya, Anda dapat memindahkan data ke bucket di lokasi lain .

Permintaan menggunakan transferJobs create:

POST https://storagetransfer.googleapis.com/v1/transferJobs
{
  "description": "YOUR DESCRIPTION",
  "status": "ENABLED",
  "projectId": "PROJECT_ID",
  "schedule": {
      "scheduleStartDate": {
          "day": 1,
          "month": 1,
          "year": 2025
      },
      "startTimeOfDay": {
          "hours": 1,
          "minutes": 1
      },
      "scheduleEndDate": {
          "day": 1,
          "month": 1,
          "year": 2025
      }
  },
  "transferSpec": {
      "gcsDataSource": {
          "bucketName": "GCS_SOURCE_NAME"
      },
      "gcsDataSink": {
          "bucketName": "GCS_SINK_NAME"
      },
      "transferOptions": {
          "deleteObjectsFromSourceAfterTransfer": true
      }
  }
}

Respons:

200 OK
{
  "transferJob": [
      {
          "creationTime": "2015-01-01T01:01:00.000000000Z",
          "description": "YOUR DESCRIPTION",
          "name": "transferJobs/JOB_ID",
          "status": "ENABLED",
          "lastModificationTime": "2015-01-01T01:01:00.000000000Z",
          "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_NEARLINE_SINK_NAME"
              },
              "objectConditions": {
                  "minTimeElapsedSinceLastModification": "2592000.000s"
              },
              "transferOptions": {
                  "deleteObjectsFromSourceAfterTransfer": true
              }
          }
      }
  ]
}

Library klien

Dalam contoh ini, Anda akan mempelajari cara memindahkan file dari satu bucket Cloud Storage ke bucket lain. Misalnya, Anda dapat mereplikasi data ke bucket di lokasi lain location.

Untuk mengetahui informasi selengkapnya tentang library klien Storage Transfer Service, lihat Mulai menggunakan library klien Storage Transfer Service.

Java

Mencari contoh yang lebih lama? Lihat Panduan Migrasi Storage Transfer Service.

import com.google.protobuf.Duration;
import com.google.storagetransfer.v1.proto.StorageTransferServiceClient;
import com.google.storagetransfer.v1.proto.TransferProto.CreateTransferJobRequest;
import com.google.storagetransfer.v1.proto.TransferTypes.GcsData;
import com.google.storagetransfer.v1.proto.TransferTypes.ObjectConditions;
import com.google.storagetransfer.v1.proto.TransferTypes.Schedule;
import com.google.storagetransfer.v1.proto.TransferTypes.TransferJob;
import com.google.storagetransfer.v1.proto.TransferTypes.TransferJob.Status;
import com.google.storagetransfer.v1.proto.TransferTypes.TransferOptions;
import com.google.storagetransfer.v1.proto.TransferTypes.TransferSpec;
import com.google.type.Date;
import com.google.type.TimeOfDay;
import java.io.IOException;
import java.util.Calendar;

public class TransferToNearline {
  /**
   * Creates a one-off transfer job that transfers objects in a standard GCS bucket that are more
   * than 30 days old to a Nearline GCS bucket.
   */
  public static void transferToNearline(
      String projectId,
      String jobDescription,
      String gcsSourceBucket,
      String gcsNearlineSinkBucket,
      long startDateTime)
      throws IOException {

    // Your Google Cloud Project ID
    // String projectId = "your-project-id";

    // A short description of this job
    // String jobDescription = "Sample transfer job of old objects to a Nearline GCS bucket.";

    // The name of the source GCS bucket to transfer data from
    // String gcsSourceBucket = "your-gcs-source-bucket";

    // The name of the Nearline GCS bucket to transfer old objects to
    // String gcsSinkBucket = "your-nearline-gcs-bucket";

    // What day and time in UTC to start the transfer, expressed as an epoch date timestamp.
    // If this is in the past relative to when the job is created, it will run the next day.
    // long startDateTime =
    //     new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2000-01-01 00:00:00").getTime();

    // Parse epoch timestamp into the model classes
    Calendar startCalendar = Calendar.getInstance();
    startCalendar.setTimeInMillis(startDateTime);
    // Note that this is a Date from the model class package, not a java.util.Date
    Date date =
        Date.newBuilder()
            .setYear(startCalendar.get(Calendar.YEAR))
            .setMonth(startCalendar.get(Calendar.MONTH) + 1)
            .setDay(startCalendar.get(Calendar.DAY_OF_MONTH))
            .build();
    TimeOfDay time =
        TimeOfDay.newBuilder()
            .setHours(startCalendar.get(Calendar.HOUR_OF_DAY))
            .setMinutes(startCalendar.get(Calendar.MINUTE))
            .setSeconds(startCalendar.get(Calendar.SECOND))
            .build();

    TransferJob transferJob =
        TransferJob.newBuilder()
            .setDescription(jobDescription)
            .setProjectId(projectId)
            .setTransferSpec(
                TransferSpec.newBuilder()
                    .setGcsDataSource(GcsData.newBuilder().setBucketName(gcsSourceBucket))
                    .setGcsDataSink(GcsData.newBuilder().setBucketName(gcsNearlineSinkBucket))
                    .setObjectConditions(
                        ObjectConditions.newBuilder()
                            .setMinTimeElapsedSinceLastModification(
                                Duration.newBuilder().setSeconds(2592000 /* 30 days */)))
                    .setTransferOptions(
                        TransferOptions.newBuilder().setDeleteObjectsFromSourceAfterTransfer(true)))
            .setSchedule(Schedule.newBuilder().setScheduleStartDate(date).setStartTimeOfDay(time))
            .setStatus(Status.ENABLED)
            .build();

    // Create a Transfer Service client
    StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();

    // Create the transfer job
    TransferJob response =
        storageTransfer.createTransferJob(
            CreateTransferJobRequest.newBuilder().setTransferJob(transferJob).build());

    System.out.println("Created transfer job from standard bucket to Nearline bucket:");
    System.out.println(response.toString());
  }
}

Python

Mencari contoh yang lebih lama? Lihat Panduan Migrasi Storage Transfer Service.

from datetime import datetime

from google.cloud import storage_transfer
from google.protobuf.duration_pb2 import Duration


def create_daily_nearline_30_day_migration(
    project_id: str,
    description: str,
    source_bucket: str,
    sink_bucket: str,
    start_date: datetime,
):
    """Create a daily migration from a GCS bucket to a Nearline GCS bucket
    for objects untouched for 30 days."""

    client = storage_transfer.StorageTransferServiceClient()

    # The ID of the Google Cloud Platform Project that owns the job
    # project_id = 'my-project-id'

    # A useful description for your transfer job
    # description = 'My transfer job'

    # Google Cloud Storage source bucket name
    # source_bucket = 'my-gcs-source-bucket'

    # Google Cloud Storage destination bucket name
    # sink_bucket = 'my-gcs-destination-bucket'

    transfer_job_request = storage_transfer.CreateTransferJobRequest(
        {
            "transfer_job": {
                "project_id": project_id,
                "description": description,
                "status": storage_transfer.TransferJob.Status.ENABLED,
                "schedule": {
                    "schedule_start_date": {
                        "day": start_date.day,
                        "month": start_date.month,
                        "year": start_date.year,
                    }
                },
                "transfer_spec": {
                    "gcs_data_source": {
                        "bucket_name": source_bucket,
                    },
                    "gcs_data_sink": {
                        "bucket_name": sink_bucket,
                    },
                    "object_conditions": {
                        "min_time_elapsed_since_last_modification": Duration(
                            seconds=2592000  # 30 days
                        )
                    },
                    "transfer_options": {
                        "delete_objects_from_source_after_transfer": True
                    },
                },
            }
        }
    )

    result = client.create_transfer_job(transfer_job_request)
    print(f"Created transferJob: {result.name}")

Memverifikasi objek yang disalin

Setelah transfer selesai, sebaiknya lakukan pemeriksaan integritas data tambahan.

  • Validasi bahwa objek disalin dengan benar, dengan memverifikasi metadata pada objek, seperti checksum dan ukuran.

  • Verifikasi bahwa versi objek yang benar telah disalin. Storage Transfer Service menawarkan opsi siap pakai untuk memverifikasi bahwa objek adalah salinan. Jika Anda telah mengaktifkan logging, lihat log untuk memverifikasi apakah semua objek berhasil disalin, termasuk kolom metadata yang sesuai.

Mulai menggunakan bucket tujuan

Setelah migrasi selesai dan diverifikasi, perbarui aplikasi atau workload yang ada sehingga menggunakan nama bucket target. Periksa log akses data di Cloud Audit Logs untuk memastikan bahwa operasi Anda mengubah dan membaca objek dengan benar.

Menghapus bucket asli

Setelah semuanya berfungsi dengan baik, hapus bucket asli.

Storage Transfer Service menawarkan opsi untuk menghapus objek setelah ditransfer dengan menentukan deleteObjectsFromSourceAfterTransfer: true dalam konfigurasi tugas, atau memilih opsi di Google Cloud konsol.

Menjadwalkan penghapusan objek

Untuk menjadwalkan penghapusan objek Anda di lain waktu, gunakan kombinasi a tugas transfer terjadwal, dan opsi deleteObjectsUniqueInSink = true.

Tugas transfer harus disiapkan untuk mentransfer bucket kosong ke bucket yang berisi objek Anda. Hal ini menyebabkan Storage Transfer Service membuat daftar objek dan mulai menghapusnya. Karena penghapusan adalah operasi khusus metadata, tugas transfer hanya terikat QPS. Untuk mempercepat proses, bagi transfer menjadi beberapa tugas, yang masing-masing bertindak pada kumpulan awalan yang berbeda.

Atau, Google Cloud menawarkan a penjadwal cron job terkelola. Untuk mengetahui informasi selengkapnya, lihat Menjadwalkan Tugas Transfer STS Google Cloud dengan Cloud Scheduler.