Menggunakan operasi yang berjalan lama di Cloud Storage

Halaman ini menjelaskan cara menggunakan operasi yang berjalan lama yang dimulai dari penggunaan panggilan metode di Cloud Storage. Untuk mengetahui informasi mendetail tentang semantik operasi yang berjalan lama yang ditampilkan dari panggilan metode tertentu, lihat dokumentasi khusus fitur.

Mendapatkan peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna mengelola operasi yang berjalan lama di Cloud Storage, minta administrator untuk memberi Anda peran Storage Admin (roles/storage.admin) atau peran Storage Legacy Bucket Owner (roles/storage.legacyBucketOwner) di bucket atau project yang digunakan untuk menjalankan operasi yang mendasarinya.

Peran bawaan ini berisi izin berikut, yang diperlukan untuk mengelola operasi yang berjalan lama di Cloud Storage:

  • storage.bucketOperations.cancel
  • storage.bucketOperations.get
  • storage.bucketOperations.list

Untuk informasi tentang cara memberikan peran pada bucket, lihat Menggunakan IAM dengan bucket. Untuk mengetahui informasi tentang cara memberikan peran pada project, lihat Mengelola akses.

Mendapatkan detail operasi yang berjalan lama

Command line

Untuk mendapatkan detail atau memeriksa status operasi yang berjalan lama, gunakan perintah gcloud storage operations describe:

gcloud storage operations describe projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID

Ganti:

  • BUCKET_NAME dengan nama bucket yang berisi operasi yang berjalan lama. Contoh, my-bucket.

  • OPERATION_ID dengan ID operasi yang berjalan lama, yang ditampilkan dalam respons metode yang Anda panggil. Misalnya, respons berikut ditampilkan dari pemanggilan gcloud storage restore dan ID operasi yang berjalan lama adalah BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP:

    Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP

REST API

JSON API

  1. Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header Authorization.

  2. Gunakan cURL untuk memanggil JSON API dengan permintaan operations.get:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/operations/OPERATION_ID"

    Ganti:

    • BUCKET_NAME dengan nama bucket yang terkait dengan operasi yang berjalan lama.

    • OPERATION_ID dengan ID operasi yang berjalan lama, yang ditampilkan dalam respons metode yang Anda panggil. Misalnya, respons berikut ditampilkan dari panggilan gcloud storage restore dan ID operasi yang berjalan lama adalah BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP:

      Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP

Jika permintaan berhasil, resource operations akan ditampilkan:

{
  "kind": "storage#operation",
  "name": "projects/_/buckets/bucket/operations/operation_id",
  "metadata": {
    "@type": OperationMetadataType*,
    metadata OperationMetadata*
  },
  "done": boolean,
  "response": {
    "@type": ResponseResourceType*,
    response ResponseResource*
  }
}

Mencantumkan operasi yang berjalan lama dalam bucket

Command line

Untuk mencantumkan operasi yang berjalan lama di bucket, gunakan perintah gcloud storage operations list:

gcloud storage operations list gs://BUCKET_NAME

Ganti:

  • BUCKET_NAME dengan nama bucket yang berisi operasi yang berjalan lama. Contoh, my-bucket.

REST API

JSON API

  1. Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header Authorization.

  2. Gunakan cURL untuk memanggil JSON API dengan permintaan operations.get:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/operations"

    Ganti:

    • BUCKET_NAME dengan nama bucket yang terkait dengan operasi yang berjalan lama yang ingin Anda cantumkan.

Jika permintaan berhasil, Anda akan mendapatkan respons yang mirip dengan berikut:

{
  "kind": "storage#operations",
  "nextPageToken": string,
  "operations": [
    operations Resource
  ]
}

Membatalkan operasi yang berjalan lama

Command line

Untuk membatalkan operasi yang berjalan lama, gunakan perintah gcloud storage operations cancel:

gcloud storage operations cancel projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID

Ganti:

  • BUCKET_NAME dengan nama bucket yang berisi operasi yang berjalan lama. Contoh, my-bucket.

  • OPERATION_ID dengan ID operasi yang berjalan lama, yang ditampilkan dalam respons metode yang Anda panggil. Misalnya, respons berikut ditampilkan dari pemanggilan gcloud storage restore dan ID operasi yang berjalan lama adalah BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP:

    Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP

REST API

JSON API

  1. Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header Authorization.

  2. Gunakan cURL untuk memanggil JSON API dengan permintaan operations.post:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/operations/OPERATION_ID/cancel"

    Ganti:

    • BUCKET_NAME dengan nama bucket yang terkait dengan operasi yang berjalan lama yang ingin Anda batalkan.

    • OPERATION_ID dengan ID operasi yang berjalan lama, yang ditampilkan dalam respons metode yang Anda panggil. Misalnya, respons berikut ditampilkan dari panggilan gcloud storage restore dan ID operasi yang berjalan lama adalah BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP:

      Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP

Metadata

Operasi yang berjalan lama memiliki metadata yang terkait dengannya. Metadata berikut mengidentifikasi properti operasi yang berjalan lama:

  • Waktu pembuatan: Waktu operasi yang berjalan lama dibuat.

  • Waktu berakhir: Waktu operasi yang berjalan lama selesai dijalankan.

  • Waktu pembaruan: Waktu terakhir kali operasi yang berjalan lama diubah.

  • Jenis: Jenis operasi yang berjalan lama yang dipanggil.

  • Pembatalan yang diminta: Menunjukkan apakah pengguna telah meminta pembatalan operasi yang berjalan lama.

  • Persentase progres: Perkiraan progres operasi yang berjalan lama, dalam persentase. Nilai -1 berarti progres tidak diketahui.

Penanganan error

Operasi yang berjalan lama dimulai dari API asinkron dan memerlukan praktik penanganan error yang berbeda dari API sinkron. Tidak seperti API sinkron, respons terhadap panggilan API asinkron dapat menunjukkan keberhasilan meskipun operasi yang berjalan lama pada akhirnya gagal. Daripada mengandalkan kode status yang ditampilkan di header respons, Anda harus mengurai metadata operasi yang berjalan lama dalam isi respons untuk menentukan apakah panggilan API berhasil.

Misalnya, jika Anda membuat permintaan pemulihan massal penghapusan sementara, permintaan tersebut akan menampilkan kode status HTTP yang berhasil (200 OK) meskipun error terjadi selama operasi. Untuk memeriksa apakah operasi pemulihan massal berhasil, dapatkan status operasi yang berjalan lama.

Perhatikan bahwa API operasi yang berjalan lama (Get, List, Cancel) bersifat sinkron dan menampilkan error normal.