Halaman ini menunjukkan cara menghapus objek dari bucket Anda di Cloud Storage. Untuk mengetahui ringkasan metode penghapusan objek, lihat Tentang penghapusan objek.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk menghapus objek, minta administrator untuk memberi Anda peran IAM berikut pada bucket yang berisi objek yang ingin Anda hapus:
-
Menghapus objek menggunakan Google Cloud CLI atau REST API:
Pengguna Objek Storage (
roles/storage.objectUser) -
Menghapus objek menggunakan konsol Google Cloud :
Admin Penyimpanan (
roles/storage.admin) -
Atau, untuk menghapus objek menggunakan konsol Google Cloud :
Viewer (
roles/viewer) dan Storage Object User (roles/storage.objectUser)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk menghapus objek. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk menghapus objek:
-
Menghapus objek:
storage.objects.delete -
Mencantumkan objek menggunakan konsol Google Cloud , atau menggunakan flag
--recursiveatau karakter pengganti di Google Cloud CLI:storage.objects.list -
Mencantumkan bucket menggunakan konsol Google Cloud :
storage.buckets.list
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Menghapus satu objek
Bagian ini menunjukkan cara menghapus satu objek dalam satu waktu.
Selesaikan langkah-langkah berikut untuk menghapus satu objek:
Konsol
- Di konsol Google Cloud , buka halaman Buckets Cloud Storage.
Dalam daftar bucket, klik nama bucket yang berisi objek yang ingin dihapus.
Halaman Detail bucket akan terbuka, dan tab Objek akan dipilih.
Buka objek, yang mungkin terletak dalam folder.
Pilih kotak centang untuk objek yang ingin Anda hapus.
Klik Hapus, lalu klik Hapus di dialog yang muncul.
Command line
Gunakan perintah Google Cloud CLI gcloud storage rm:
gcloud storage rm gs://BUCKET_NAME/OBJECT_NAME
Dengan keterangan:
BUCKET_NAMEadalah nama bucket yang berisi objek yang ingin Anda hapus. Contoh,my-bucket.OBJECT_NAMEadalah nama objek yang ingin Anda hapus. Contoh,pets/dog.png.
Jika berhasil, responsnya akan terlihat mirip dengan contoh berikut:
Removing objects: Removing gs://example-bucket/file.txt... Completed 1/1
Library klien
C++
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C++ API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
C#
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Go
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Java
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Node.js
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
PHP
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Ruby
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Rust
REST API
JSON API
Instal dan lakukan inisialisasigcloud CLI, yang memungkinkan Anda membuat token akses untuk header
Authorization.Gunakan
curluntuk memanggil JSON API dengan permintaanDELETE:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Dengan:
BUCKET_NAMEadalah nama bucket yang berisi objek yang ingin Anda hapus. Contoh,my-bucket.OBJECT_NAMEadalah nama objek yang dienkode ke URL yang ingin Anda hapus. Contohnya,pets/dog.png, yang berenkode URL menjadipets%2Fdog.png.
XML API
Instal dan lakukan inisialisasigcloud CLI, yang memungkinkan Anda membuat token akses untuk header
Authorization.Gunakan
curluntuk memanggil XML API dengan permintaanDELETE Object:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Dengan:
BUCKET_NAMEadalah nama bucket yang berisi objek yang ingin Anda hapus. Contoh,my-bucket.OBJECT_NAMEadalah nama objek yang dienkode ke URL yang ingin Anda hapus. Contohnya,pets/dog.png, yang berenkode URL menjadipets%2Fdog.png.
Menghapus objek secara massal
Bagian ini menunjukkan cara menghapus objek secara massal dengan memilihnya di konsolGoogle Cloud , dengan menghapus objek dengan awalan umum menggunakan alat command line, atau dengan menentukan daftar objek dalam permintaan API atau library klien.
Konsol
- Di konsol Google Cloud , buka halaman Buckets Cloud Storage.
Dalam daftar bucket, klik nama bucket yang berisi objek yang ingin dihapus.
Halaman Detail bucket akan terbuka, dan tab Objek akan dipilih.
Buka objek, yang mungkin berada dalam folder.
Centang kotak untuk setiap objek yang ingin Anda hapus.
Anda dapat memilih kotak centang untuk folder, yang akan menghapus semua objek yang ada dalam folder tersebut.
Klik Hapus, lalu klik Hapus di dialog yang muncul.
Jika menghapus banyak objek sekaligus, Anda dapat melacak progres penghapusan dengan mengklik ikon Notifications di konsol Google Cloud . KonsolGoogle Cloud dapat menghapus hingga beberapa juta objek secara massal dan melakukannya di latar belakang.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di Google Cloud konsol, lihat Pemecahan masalah.
Command line
Google Cloud CLI
Untuk menghapus grup objek dengan imbuhan yang sama, seperti
objek yang namanya meniru struktur folder, gunakan
flag --recursive dengan gcloud storage rm:
gcloud storage rm --recursive gs://BUCKET_NAME/PREFIX
Dengan:
BUCKET_NAMEadalah nama bucket. Contoh,my-bucket.PREFIXadalah awalan umum objek yang ingin Anda hapus. Contoh,pets/.
CLI Amazon S3
Untuk menghapus beberapa objek di Cloud Storage menggunakan Amazon S3
CLI, gunakan perintah aws s3api delete-objects. Anda harus mengalihkan
permintaan ke multi-object delete XML API Cloud Storage dengan
menetapkan tanda --endpoint-url ke storage.googleapis.com. Untuk mengetahui definisi parameter dan perilaku API delete-objects secara mendetail, lihat dokumentasi referensi delete-objects CLI Amazon S3.
Library klien
Cloud Storage mendukung XML API penghapusan multi-objek melalui antarmuka yang kompatibel dengan Amazon S3.
Untuk menggunakan library klien yang kompatibel dengan Amazon S3 untuk penghapusan objek massal, arahkan
permintaan Anda ke endpoint Google Cloud dengan menyetel URL endpoint ke https://storage.googleapis.com dalam konfigurasi klien. Pendekatan ini dapat bermanfaat jika Anda melakukan salah satu tugas berikut:
- Memanfaatkan codebase atau alat yang sudah ada yang dibuat untuk Amazon S3.
- Mempertahankan konsistensi di seluruh lingkungan multi-cloud yang mencakup Amazon S3 dan Cloud Storage.
Contoh berikut menunjukkan cara menginisialisasi klien menggunakan library Boto3 untuk berinteraksi dengan Cloud Storage:
import boto3
def main():
# Initialize the S3 client to point to the Google Cloud Storage endpoint
client = boto3.client(
service_name='s3',
endpoint_url='https://storage.googleapis.com',
aws_access_key_id='YOUR_ACCESS_ID',
aws_secret_access_key='YOUR_SECRET',
)
# Perform delete operations as defined in the library's documentation
# response = client.delete_objects(Bucket='BUCKET_NAME', Delete={'Objects': [...]})
Untuk mengetahui tanda tangan metode dan definisi parameter tertentu, lihat dokumentasi delete_objects Boto3.
XML API
Untuk menghapus hingga 1.000 objek dalam satu permintaan menggunakan XML API, selesaikan langkah-langkah berikut:
Instal dan lakukan inisialisasigcloud CLI, yang memungkinkan Anda membuat token akses untuk header
Authorization.Buat dokumen XML yang menentukan objek yang akan dihapus.
Untuk mengetahui daftar lengkap setelan, lihat Menghapus beberapa objek dalam dokumentasi referensi XML API. Setelan umum yang harus disertakan dalam file XML Anda adalah sebagai berikut:
<Delete> <Object> <Key>OBJECT_NAME</Key> <VersionId>VERSION_ID</VersionId> </Object> ... <Quiet>QUIET_RESPONSE_BOOLEAN</Quiet> </Delete>Dengan:
OBJECT_NAMEadalah nama objek yang dienkode ke URL. Contoh,pets/dog.png, URL dienkode sebagaipets%2Fdog.png. Anda dapat menentukan hingga 1.000 objek dalam file XML.VERSION_IDadalah ID versi untuk objek. Misalnya,11111.QUIET_RESPONSE_BOOLEANmengontrol kejelasan respons API:- Setel ke
Falseuntuk respons verbose. Respons menyertakan detail untuk setiap objek, baik yang berhasil dihapus maupun tidak. Operasi penghapusan multi-objek menggunakan XML API tidak bersifat atomik. Jika permintaan menghasilkan kegagalan sebagian, beberapa objek mungkin berhasil dihapus, tetapi objek lainnya mungkin gagal dihapus. Jadi, sebaiknya gunakan respons verbose untuk mengidentifikasi semua penghapusan objek. Jika log audit Akses Data diaktifkan, Anda juga dapat meninjau log audit untuk mengetahui detail kegagalan. - Setel ke
Trueuntuk respons yang tenang. Isi respons tidak menyertakan informasi tentang objek yang berhasil dihapus.
- Setel ke
Gunakan
curluntuk mengirim permintaan bucketPOSTke XML API dengan parameter kueri?deletedan file XML Anda:curl -X POST --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?delete"
Dengan:
XML_FILE_NAMEadalah nama file XML yang Anda buat.BUCKET_NAMEadalah nama bucket yang berisi objek yang akan dihapus.Jika mode
Quietdinonaktifkan, respons verbose mungkin terlihat seperti berikut:<DeleteResult> <Deleted> <Key>images/photo1.jpg</Key> <VersionId>11111</VersionId> </Deleted> <Deleted> <Key>documents/report.pdf</Key> <VersionId>22222</VersionId> </Deleted> <Error> <Code>AccessDenied</Code> <Key>private/financial_data.xlsx</Key> <Message>Access Denied. You don't have permission to delete this object.</Message> <VersionId>33333</VersionId> </Error> </DeleteResult>
Jika mode
Quietdiaktifkan, respons hanya mencantumkan objek yang gagal dihapus. Jika semua objek berhasil dihapus, tag<DeleteResult/>kosong akan ditampilkan. Berikut adalah contoh respons senyap saat terjadi error:<DeleteResult> <Error> <Code>AccessDenied</Code> <Key>private/financial_data.xlsx</Key> <Message>Access Denied. You don't have permission to delete this object.</Message> <VersionId>33333</VersionId> </Error> </DeleteResult>
Menghapus hingga miliaran objek
Untuk menghapus jutaan atau miliaran objek dengan satu tugas penghapusan objek, gunakan operasi batch penyimpanan. Untuk membuat tugas, tentukan objek yang akan dihapus, baik dengan memberikan daftar objek dalam file manifes atau menggunakan prefiks objek. Setelah Anda menentukan daftar objek, buat tugas operasi batch untuk menghapus objek.
Menghapus objek secara otomatis menggunakan aturan siklus proses objek
Jika Anda ingin objek dihapus secara otomatis saat memenuhi kriteria yang Anda tentukan, seperti usia atau kelas penyimpanan, gunakan Object Lifecycle Management. Misalnya, Anda dapat menetapkan aturan siklus proses untuk menghapus log yang lebih lama dari 30 hari.
Membuat batch permintaan penghapusan objek dengan JSON API
Untuk mengurangi jumlah koneksi HTTP yang diperlukan saat menghapus banyak objek dengan JSON API, gunakan permintaan batch JSON API. Anda dapat mengelompokkan hingga 100 panggilan API ke dalam satu permintaan HTTP untuk membantu mengurangi overhead jaringan.
Langkah berikutnya
- Pelajari cara memulihkan objek yang dihapus sementara jika Anda tidak sengaja menghapus objek.
- Jika Anda menggunakan Pembuatan Versi Objek, pahami bahwa menghapus objek dapat membuatnya menjadi versi lama, bukan menghapusnya secara permanen. Pelajari cara mengelola atau menghapus versi yang tidak aktif secara permanen.
- Konfigurasi Object Lifecycle Management untuk mengotomatiskan penghapusan objek di masa mendatang.
- Hapus bucket jika Anda tidak lagi memerlukannya.