Halaman ini menjelaskan cara menampilkan daftar, mengakses, dan memulihkan objek yang dihapus sementara.
Sebelum memulai
Untuk menyelesaikan tugas di halaman ini, pastikan Anda memiliki peran IAM Storage Admin (roles/storage.admin
) di bucket atau project yang berisi bucket. Peran bawaan ini mencakup izin yang diperlukan untuk mengelola dan memulihkan soft delete pada bucket.
Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
storage.buckets.get
storage.buckets.update
storage.buckets.list
- Izin ini diperlukan jika Anda berencana menggunakan Konsol Google Cloud untuk menjalankan petunjuk di halaman ini.
storage.objects.restore
storage.objects.create
storage.objects.delete
- Izin ini diperlukan jika pemulihan sebuah objek menyebabkan objek yang sudah ada ditimpa.
storage.buckets.restore
- Izin ini diperlukan jika Anda ingin memulihkan objek yang dihapus sementara dalam bucket secara massal.
storage.bucketOperations.*
- Izin ini diperlukan untuk operasi yang berjalan lama.
Untuk mengetahui informasi tentang cara memberikan peran pada bucket, lihat Menggunakan IAM dengan bucket. Untuk mengetahui informasi tentang cara memberikan peran pada project, lihat Mengelola akses ke project.
Membuat daftar semua objek yang dihapus sementara dalam bucket
Anda dapat mencantumkan semua objek yang dihapus sementara dalam bucket.
Konsol
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Dalam daftar bucket, klik nama bucket yang ingin Anda lihat objek yang dihapus untuk sementara. Halaman Bucket details akan terbuka dengan tab Objects dipilih.
Di daftar Tampilkan, pilih Hanya objek yang dihapus sementara. Daftar objek yang dihapus untuk sementara akan ditampilkan.
Command line
Untuk menampilkan daftar semua objek yang dihapus sementara dalam bucket, gunakan
perintah gcloud storage ls
dengan flag --soft-deleted
dan
--recursive
:
gcloud storage ls gs://BUCKET_NAME --soft-deleted --recursive
Ganti kode berikut:
BUCKET_NAME
: nama bucket. Misalnya,my-bucket
.
REST API
JSON API
Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header
Authorization
.Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header
Authorization
.Gunakan
cURL
untuk memanggil JSON API dengan permintaan untuk mencantumkan objek yang menggunakan parameter kueri?softDeleted
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?softDeleted=true"
Dengan
BUCKET_NAME
adalah nama bucket yang relevan. Contoh,my-bucket
.
Melihat semua versi objek yang dihapus untuk sementara
Anda dapat melihat semua versi objek tertentu yang dihapus untuk sementara di dalam bucket.
Konsol
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Dalam daftar bucket, klik nama bucket yang berisi objek yang ingin Anda lihat versi yang dihapus untuk sementara. Halaman Bucket details akan terbuka dengan tab Objects dipilih.
Klik objek yang ingin Anda lihat semua versi yang dihapus untuk sementara. Halaman Object details akan ditampilkan.
Klik tab Version History.
Di daftar Tampilkan, pilih Hanya objek yang dihapus sementara. Daftar semua versi yang dihapus sementara untuk objek tersebut akan ditampilkan.
Command line
Untuk menampilkan daftar semua versi objek yang dihapus untuk sementara dalam bucket, gunakan perintah gcloud storage ls
:
gcloud storage ls gs://BUCKET_NAME/OBJECT_NAME --soft-deleted
Ganti kode berikut:
BUCKET_NAME
: nama bucket. Misalnya,my-bucket
.OBJECT_NAME
: nama objek yang semua versinya ingin Anda lihat.
REST API
JSON API
Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header
Authorization
.Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header
Authorization
.Gunakan
cURL
untuk memanggil JSON API dengan permintaan untuk mencantumkan objek yang menggunakan parameter kueri?softDeleted
:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?softDeleted=true"
Dengan
BUCKET_NAME
adalah nama bucket yang relevan. Contoh,my-bucket
.
Memulihkan objek yang dihapus sementara
Anda dapat memulihkan versi tertentu dari objek yang dihapus untuk sementara di bucket.
Konsol
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Dalam daftar bucket, klik nama bucket yang berisi objek yang dihapus untuk sementara yang ingin Anda pulihkan. Halaman Bucket details akan terbuka dengan tab Objects dipilih.
Di daftar Tampilkan, pilih Hanya objek yang dihapus sementara.
Buka objek, yang mungkin terletak dalam folder.
Klik objek yang dihapus untuk sementara. Halaman Object details akan ditampilkan.
Di daftar Tampilkan, pilih Hanya objek yang dihapus sementara. Daftar semua versi objek tersebut yang dihapus untuk sementara akan ditampilkan.
Untuk memulihkan versi objek tertentu yang dihapus untuk sementara, klik Restore di samping versi objek tersebut. Panel versi objek pemulihan akan terbuka.
Klik Confirm.
Command line
Untuk memulihkan versi objek yang dihapus untuk sementara, gunakan
perintah gcloud storage restore
:
gcloud storage restore gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER
Ganti kode berikut:
BUCKET_NAME
: nama bucket. Misalnya,my-bucket
.OBJECT_NAME
: nama objek yang semua versinya ingin Anda lihat.GENERATION_NUMBER
: nomor pembuatan objek yang dihapus untuk sementara yang ingin Anda pulihkan. Jika Anda tidak menentukan nomor pembuatan, versi terbaru akan dipulihkan. Contoh,1560468815691234
.
Untuk opsi tambahan guna memulihkan beberapa objek secara massal, termasuk
memulihkan semua versi objek dengan flag all-versions
, lihat
referensi gcloud storage restore
.
REST API
JSON API
Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header
Authorization
.Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header
Authorization
.Gunakan
cURL
untuk memanggil JSON API dengan permintaanPOST
Object:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/restore?generation=GENERATION_NUMBER"
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang relevan. Contoh,my-bucket
.OBJECT_NAME
adalah nama objek yang dihapus untuk sementara yang ingin Anda pulihkan. Contoh,cat.jpeg
.GENERATION_NUMBER
adalah nomor pembuatan objek yang dihapus sementara yang ingin Anda pulihkan. Jika Anda tidak menentukan nomor pembuatan, versi terbaru akan dipulihkan. Misalnya,1560468815691234
.
Memulihkan massal objek yang dihapus sementara dalam bucket
Jika Anda ingin memulihkan sejumlah besar objek, atau tidak mengetahui objek tertentu yang ingin dipulihkan, gunakan operasi pemulihan massal. Perlu diperhatikan bahwa operasi pemulihan massal terjadi secara asinkron dan dalam beberapa kasus dapat memerlukan waktu satu jam atau lebih untuk dimulai.
Operasi pemulihan massal akan memulai operasi yang berjalan lama di bucket. Anda dapat menggunakan Google Cloud CLI untuk mendapatkan dan mencantumkan operasi yang berjalan lama, sehingga Anda dapat melihat detail dan status operasi pemulihan massal saat sedang berlangsung.
Konsol
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Di daftar bucket, temukan bucket yang berisi objek yang ingin Anda pulihkan.
Klik menu Bucket overflow (more_vert) yang terkait dengan bucket tersebut, lalu pilih Create recovery job.
Panel Buat tugas pemulihan akan terbuka.
Di bagian Pilih objek yang dihapus sementara untuk dipulihkan, pilih periode penghapusan saat objek yang ingin Anda pulihkan.
(Opsional) Pilih Filter menurut pola glob, lalu masukkan pola glob untuk memulihkan objek yang memenuhi kriteria pola glob saja.
(Opsional) Alihkan perilaku pemulihan tambahan di bagian Opsi pemulihan.
Klik Create.
Anda dapat melacak progres operasi pemulihan massal dengan mengklik tombol Notifications (notifications) yang ada di header Konsol Google Cloud.
Command line
Untuk menggunakan operasi pemulihan massal guna memulihkan semua objek di dalam bucket, gunakan
perintah gcloud storage restore
.
Perintah berikut melakukan operasi pemulihan massal untuk memulihkan semua objek bucket yang dihapus selama jangka waktu tertentu secara asinkron:
gcloud storage restore gs://BUCKET_NAME/** \ --async --deleted-after-time=DELETED_AFTER_TIME \ --deleted-before-time=DELETED_BEFORE_TIME
Ganti kode berikut:
BUCKET_NAME
: nama bucket. Misalnya,my-bucket
.DELETED_AFTER_TIME
: argumen opsional untuk menentukan tanggal saat objek dipulihkan. Misalnya,2022-12-01
.DELETED_BEFORE_TIME
: argumen opsional untuk menentukan tanggal sebelum objek dipulihkan. Misalnya,2022-12-21
.Jika berhasil, perintah akan menampilkan ID operasi yang berjalan lama yang terkait dengan operasi pemulihan massal. Anda bisa mendapatkan detail tentang operasi yang berjalan lama atau membatalkan operasi yang berjalan lama untuk menghentikan operasi pemulihan massal sebelum selesai.
REST API
JSON API
Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header
Authorization
.Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header
Authorization
.Gunakan
cURL
untuk memanggil JSON API dengan permintaanPOST
Object:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/bulkRestore"
Dengan
BUCKET_NAME
adalah nama bucket yang relevan. Contoh,my-bucket
.
Jika berhasil, perintah akan menampilkan ID operasi yang berjalan lama yang terkait dengan operasi pemulihan massal. Anda bisa mendapatkan detail tentang operasi yang berjalan lama atau membatalkan operasi yang berjalan lama untuk menghentikan operasi pemulihan massal sebelum selesai.
Mengelola operasi yang berjalan lama untuk pemulihan massal
Operasi yang berjalan lama di Google Cloud CLI diidentifikasi dengan nama operasi, yang merupakan kombinasi dari nama bucket dan ID operasi.
Contoh berikut menunjukkan operasi yang berjalan lama yang ditampilkan dari operasi pemulihan massal:
done: false { "kind": "storage@operation", "name": "projects/_/buckets/my-bucket/operations/CiQyODRlMTY0My0wNGExLTQ3MWItOTE2Zi1hZmQ0ZmM4ZDc4MjQQAg", "metadata": { "@type": "type.googleapis.com/google.storage.v2.BulkRestoreObjectsMetadata", "commonMetadata": { "type": "bulk-restore-objects", "createTime": "2023-10-20T21:08:11.289Z", "updateTime": "2023-10-20T21:18:37.583Z", "endTime": "2023-10-20T21:18:37.583Z", "requestedCancellation": false, "progressPercent": -1, }, "allow_overwrite": false, "matchGlobs": ["*"], "succeededCount": "0", "failedCount": "0", "skippedCount": "0", }, "done": true, "response": { "@type": "type.googleapis.com/google.storage.v2.BulkRestoreObjectsResponse" } }
Untuk mengetahui informasi umum tentang cara mengelola operasi yang berjalan lama, lihat
dokumentasi gcloud storage operations
.
Mendapatkan detail operasi yang berjalan lama
Gunakan perintah gcloud storage operations describe
:
gcloud storage operations describe projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID
Ganti kode berikut:
BUCKET_NAME
: nama bucket yang berisi operasi yang berjalan lama. Contoh,my-bucket
.OPERATION_ID
: ID operasi yang berjalan lama yang ditampilkan dalam respons operasi pemulihan massal.
Membuat daftar operasi yang berjalan lama di dalam bucket
Gunakan perintah gcloud storage operations list
:
gcloud storage operations list gs://BUCKET_NAME
Ganti kode berikut:
BUCKET_NAME
: nama bucket yang berisi operasi yang berjalan lama. Contoh,my-bucket
.
Membatalkan operasi yang berjalan lama
Gunakan perintah gcloud storage operations cancel
:
gcloud storage operations cancel projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID
Ganti kode berikut:
BUCKET_NAME
: nama bucket yang berisi operasi yang berjalan lama. Contoh,my-bucket
.OPERATION_ID
: ID operasi yang berjalan lama yang ditampilkan dalam respons operasi pemulihan massal.
Penanganan error
Operasi yang berjalan lama ditampilkan dari API asinkron, yang memerlukan praktik penanganan error yang berbeda dengan API sinkron. Tidak seperti API sinkron, API yang menampilkan operasi yang berjalan lama akan berhasil meskipun operasi yang mendasarinya gagal. Saat menggunakan API yang menampilkan operasi yang berjalan lama, Anda akan merespons kode error yang ditampilkan dalam respons yang berhasil, bukan merespons kode error yang ditampilkan dalam respons yang gagal.
Misalnya, jika Anda mengajukan permintaan pemulihan massal untuk sementara, permintaan tersebut
akan menampilkan kode status HTTP yang berhasil (200 OK
) meskipun terjadi error selama
operasi. Untuk memeriksa apakah operasi pemulihan massal berhasil, buat kueri status operasi yang berjalan lama.
Perhatikan bahwa API operasi yang berjalan lama (Dapatkan, Buat, Batalkan) bersifat sinkron dan menampilkan error normal.
Upaya coba lagi
Secara default, API penghapusan sementara asinkron bersifat idempoten. Oleh karena itu, Anda dapat mencoba kembali panggilan API penghapusan sementara asinkron tanpa perlu khawatir mengubah resource secara tidak sengaja.
Langkah selanjutnya
- Pelajari penghapusan untuk sementara lebih lanjut.
- Pelajari cara menggunakan hapus untuk sementara.