Melakukan transfer antar bucket Cloud Storage

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

Migrasi bucket berguna dalam sejumlah skenario. Fungsi ini dapat digunakan untuk menggabungkan data dari project terpisah, memindahkan data ke lokasi pencadangan, 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 kurang dari 1 TB: Gunakan gcloud. Untuk mengetahui petunjuknya, lihat Memindahkan dan mengganti nama bucket.

  • Mentransfer lebih dari 1 TB: Gunakan Storage Transfer Service. Storage Transfer Service adalah opsi transfer terkelola yang memberikan keamanan, keandalan, dan performa siap pakai. Dengan demikian, 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 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.
  • Keep bucket name. Ganti bucket penyimpanan untuk mempertahankan nama saat ini, yang berarti Anda tidak perlu mengupdate aplikasi.

Dalam kedua kasus tersebut, Anda harus merencanakan periode nonaktif, dan memberi tahu pengguna tentang periode nonaktif yang akan datang. Tinjau penjelasan berikut untuk memahami pilihan mana yang paling cocok untuk Anda.

Nama bucket baru

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

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

  1. Menyalin data Anda ke bucket penyimpanan baru.
  2. Memulai periode nonaktif.
  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.

Pertahankan nama bucket

Gunakan pendekatan ini jika Anda tidak ingin mengubah kode untuk mengarah ke nama bucket baru. Proses ini melibatkan langkah-langkah berikut:

  1. Menyalin data Anda ke bucket penyimpanan sementara.
  2. Memulai periode nonaktif.
  3. Menghapus bucket asli Anda.
  4. Membuat bucket baru dengan nama yang sama dengan bucket asli Anda.
  5. Menyalin data ke bucket baru 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.

Meminimalkan periode nonaktif

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

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

  1. Transfer seed: Melakukan transfer massal tanpa mengunci operasi baca/tulis pada sumber.

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

Mengoptimalkan kecepatan transfer

Saat memperkirakan waktu yang diperlukan untuk tugas transfer, pertimbangkan kemungkinan bottleneck. Misalnya, jika sumber memiliki miliaran file kecil, kecepatan transfer Anda akan dibatasi oleh 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 memadai 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 menjadi beberapa tugas transfer kecil, misalnya dengan menggunakan include and exclude prefixes untuk mentransfer file tertentu.

Jika lokasi, class penyimpanan, dan kunci enkripsi sama, Storage Transfer Service tidak akan membuat salinan byte baru; tetapi membuat entri metadata baru yang mengarah ke blob sumber. Akibatnya, lokasi dan salinan class yang sama dari korpus besar diselesaikan dengan sangat cepat dan hanya terikat dengan QPS.

Penghapusan juga merupakan operasi khusus metadata. Untuk transfer ini, paralelisasi transfer dengan membaginya menjadi beberapa tugas kecil dapat meningkatkan kecepatan.

Mempertahankan metadata

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

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

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 direset setelah transfer, sehingga waktu objek yang dihabiskan di kelas penyimpanannya juga 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 hal yang dipertahankan dan tidak dipertahankan, lihat Preservasi metadata.

Menangani objek berversi

Jika ingin mentransfer semua versi objek penyimpanan, bukan hanya versi terbaru, Anda harus menggunakan gcloud CLI atau REST API untuk mentransfer data, yang digabungkan dengan fitur manifes Storage Transfer Service.

Untuk mentransfer semua versi objek:

  1. Buat daftar objek bucket dan salin ke 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. Pisahkan file JSON menjadi dua file CSV, satu file dengan versi lama, dan satu lagi dengan versi aktif:

    jq -r '.[] | select( .type=="cloud_object" and (.metadata | has("timeDeleted") | not)) | [.metadata.name, .metadata.generation] | @csv' object-listing.json > live-object-manifest.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 terlebih dahulu dengan meneruskan file manifes non-current-object-manifest.csv sebagai nilai kolom transferManifest.

  5. Kemudian, transfer versi live dengan cara yang sama, dengan menentukan live-object-manifest.csv sebagai file manifes.

Mengonfigurasi opsi transfer

Beberapa opsi yang tersedia saat 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 serta mengecualikan awalan 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; untuk menghapus objek di tujuan yang tidak ada di set transfer; atau untuk menghapus objek yang ditransfer dari sumber.

Mentransfer data

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

Buat bucket baru

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

Anda dapat 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.

Menyalin objek ke bucket baru

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

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

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

Konsol Google Cloud

Gunakan Cloud Storage Transfer Service dari dalam konsol Google Cloud:

  1. Buka halaman Transfer di konsol Google Cloud.

    Buka halaman Transfer

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

    • Memulai: 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 konsol Google Cloud.

    Untuk melihat progres transfer:

    Buka halaman Transfer di konsol Google Cloud.

    Buka halaman Transfer

    Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Storage Transfer Service yang gagal di Konsol Google Cloud, 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 Anda belum melakukannya, instal alat command line gcloud.

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

gcloud init

Menambahkan akun layanan ke folder tujuan

Anda harus menambahkan akun layanan Storage Transfer Service ke bucket tujuan 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. \
--role=roles/storage.admin

Untuk petunjuk penggunaan konsol atau API Google Cloud, lihat artikel 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

Dengan keterangan:

  • 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. Hal ini mencakup --include-prefixes dan --exclude-prefixes, dan 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 selama atau setelah transfer (--delete-from=destination-if-unique atau source-after-transfer); tentukan [metadata values to preserve]metadata; dan secara opsional tetapkan class penyimpanan pada objek yang ditransfer (--custom-storage-class).

  • Notifikasi: Konfigurasikan 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 lainnya. Misalnya, Anda dapat memindahkan data ke bucket di lokasi lain.

Minta 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 lainnya. Misalnya, Anda dapat mereplikasi data ke bucket di lokasi lain.

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

Java

Mencari sampel 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 sampel 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.

  • Pastikan 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 beban kerja yang ada agar 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 di konfigurasi tugas, atau memilih opsi di konsol Google Cloud.

Menjadwalkan penghapusan objek

Untuk menjadwalkan penghapusan objek pada lain waktu, gunakan kombinasi 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 mencantumkan 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 penjadwal tugas cron terkelola. Untuk mengetahui informasi selengkapnya, lihat Menjadwalkan Tugas Transfer Google Cloud STS dengan Cloud Scheduler.