Beralih dari gsutil ke gcloud storage

gcloud storage (Ketersediaan Umum) adalah alat command line yang direkomendasikan untuk berinteraksi dengan Cloud Storage. Halaman ini membantu Anda bertransisi dari gsutil ke gcloud storage dengan menjelaskan perbedaan utama dan pemetaan perintah antara kedua alat tersebut. Untuk deskripsi mendetail alat gcloud storage, lihat dokumentasi referensi gcloud storage.

Untuk mempelajari cara menginstal dan mulai menggunakan Google Cloud CLI, lihat Menginstal Google Cloud CLI.

Perbedaan perilaku

Bagian berikut menjelaskan perbedaan perilaku antara gsutil dan gcloud storage.

Pemanggilan paralel

gcloud storage tidak mendukung menjalankan beberapa instance CLI dari terminal yang berbeda secara bersamaan.

Pemrosesan paralel

gcloud storage mendukung pemrosesan paralel.

Penanganan karakter pengganti

gcloud storage menyederhanakan beberapa tanda bintang. Jika Anda menggunakan tiga tanda bintang atau lebih secara berurutan (***), tanda bintang tersebut akan dianggap sebagai satu tanda bintang (*).

Penanganan bucket namespace hierarkis

gcloud storage dapat digunakan untuk membuat dan mengelola bucket dengan namespace hierarkis yang diaktifkan.

Pemformatan output

Perintah gcloud storage dan gsutil memformat outputnya secara berbeda. Meskipun perubahan kecil seperti format logging mungkin tidak memengaruhi Anda, perbedaan yang lebih signifikan dalam pesan error dan listingan data dapat merusak skrip otomatis.

Jika Anda memiliki skrip yang mengandalkan parsing output perintah gsutil, Anda harus meninjau dan memperbaruinya untuk format gcloud storage sebelum mentransisikannya.

Persamaan perintah gcloud

Semua perintah gsutil yang ada memiliki perintah yang setara di gcloud storage, dengan beberapa pengecualian. Anda bisa mendapatkan daftar lengkap perintah gcloud storage dengan membuka dokumentasi referensi atau dengan menjalankan gcloud storage --help. Tabel berikut menguraikan secara singkat perubahan dari perintah gsutil populer.

Operasi Perintah gsutil Perintah gcloud storage
Mengelola Daftar Kontrol Akses (ACL)
gsutil acl get
gsutil acl set
gsutil acl ch
gcloud storage RESOURCE describe --format="multi(acl:format=json)"
gcloud storage RESOURCE update --acl-file=ACL_FILE_PATH
gcloud storage RESOURCE update --add-acl-grant=GRANT
gcloud storage RESOURCE update --remove-acl-grant=GRANT
Operasi Perintah gsutil Perintah gcloud storage
Menggabungkan objek dan menampilkan konten objek
gsutil cat
gcloud storage cat
Operasi Perintah gsutil Perintah gcloud storage
Menggabungkan objek dengan menggabungkannya menjadi objek baru
gsutil compose
gcloud storage objects compose
Catatan
Untuk menerapkan prasyarat di gcloud storage objects compose, gunakan flag tertentu, seperti --if-generation-match atau --if-metageneration-match.
Operasi Perintah gsutil Perintah gcloud storage
Menyalin objek dan resource lainnya
gsutil cp
gcloud storage cp
Catatan

Folder simulasi yang dibuat menggunakan konsol Google Cloud dikenali sebagai objek placeholder 0 byte. gcloud storage cp dapat digunakan untuk menyalin folder simulasi, sedangkan gsutil cp tidak dapat.

Saat menangani error, gcloud storage cp akan mencoba menyalin semua resource, meskipun salah satu resource tidak valid atau tidak ada. gsutil cp dapat menghentikan seluruh operasi segera setelah menemukan resource yang tidak valid.

Saat mendownload objek, gcloud storage cp akan membuat direktori lokal yang tidak ada yang ditentukan dalam jalur tujuan. gsutil cp akan gagal jika direktori tujuan tidak ada.

Operasi Perintah gsutil Perintah gcloud storage
Menampilkan total ruang disk yang digunakan oleh objek
gsutil du
gcloud storage du
Operasi Perintah gsutil Perintah gcloud storage
Menghitung hash file
gsutil hash
gcloud storage hash
Catatan

gsutil hash menggunakan tanda tambahan untuk menyertakan hash tertentu, seperti -c atau -m. gcloud storage hash menggunakan flag pengurangan untuk mengecualikan hash, seperti --skip-md5 atau --skip-crc32c.

Operasi Perintah gsutil Perintah gcloud storage
Mengelola label bucket
gsutil label get
gsutil label set
gsutil label ch
gcloud storage buckets describe
gcloud storage buckets update
gcloud storage buckets update
Catatan

Kombinasi penambahan, pembaruan, dan penghapusan label dalam satu perintah gsutil label ch dapat berperilaku berbeda dengan operasi yang setara menggunakan gcloud storage buckets update. Skrip yang mengandalkan perilaku baca-ubah-tulis spesifik dari gsutil harus diuji dengan cermat setelah bertransisi ke gcloud storage.

Operasi Perintah gsutil Perintah gcloud storage
Mencantumkan bucket, objek, dan folder
gsutil ls
gcloud storage ls
Catatan

Saat karakter pengganti digunakan untuk mencantumkan objek dalam project, gsutil ls akan menampilkan daftar objek datar, sedangkan gcloud storage ls akan menampilkan objek yang dikelompokkan menurut nama bucket.

Saat menggunakan gcloud storage ls -L untuk menampilkan listingan detail sebagai output, perilaku berikut berlaku:

  • Label untuk setiap bagian metadata (juga dikenal sebagai "kunci") memiliki huruf pertama setiap kata yang dikapitalisasi.
  • Jika sepotong metadata untuk objek tidak memiliki nilai, gcloud storage akan menghilangkan baris tersebut dari output.

gcloud storage selalu menampilkan tanggal dan waktu dalam UTC.

gcloud storage menampilkan pesan error apa pun di akhir output perintah.

Operasi Perintah gsutil Perintah gcloud storage
Memindahkan dan mengganti nama objek atau direktori
gsutil mv
gcloud storage mv
Operasi Perintah gsutil Perintah gcloud storage
Menulis ulang objek di tempat
gsutil rewrite
gcloud storage objects update
Catatan

Jika encryption_key ditetapkan dalam file konfigurasi boto Anda, gsutil rewrite -k akan menerapkan kunci ke objek. Jika encryption_key tidak ditetapkan, nilai yang setara dengan gsutil rewrite -k adalah gcloud storage objects update --clear-encryption-key. Tindakan ini akan menghapus kunci enkripsi yang disediakan pelanggan (CSEK) atau kunci enkripsi yang dikelola pelanggan (CMEK) dari objek. Objek kemudian dienkripsi dengan kunci KMS default bucket atau dengan enkripsi yang dikelola Google.

gsutil rewrite mencakup logika untuk melewati penulisan ulang objek jika transformasi yang diminta tidak akan mengubah statusnya (misalnya, jika objek sudah berada dalam kelas penyimpanan target). gcloud storage objects update mungkin tidak melakukan pemeriksaan yang sama, yang berpotensi menyebabkan operasi yang tidak perlu.

Operasi Perintah gsutil Perintah gcloud storage
Menghapus objek atau bucket
gsutil rm
gcloud storage rm
Catatan

Alias gsutil, del, delete, dan remove tidak didukung.

Ada masalah umum saat gsutil dan gcloud storage berperilaku berbeda saat flag -l dan -r digunakan bersama. Skrip yang menyalurkan daftar direktori yang akan dihapus secara rekursif harus diuji secara menyeluruh sebelum beralih dari penggunaan gsutil ke gcloud storage.

Operasi Perintah gsutil Perintah gcloud storage
Menyinkronkan konten dua bucket atau direktori
gsutil rsync
gcloud storage rsync
Catatan

Secara default, gsutil rsync menganggap objek tidak berubah jika ukuran dan waktu modifikasi terakhirnya sama antara sumber dan tujuan. Checksum hanya melakukan perbandingan checksum yang lebih menyeluruh jika waktu modifikasi objek tidak ada, atau jika Anda memaksanya secara manual dengan tanda -c. gcloud storage rsync juga dimulai dengan memeriksa ukuran file dan waktu modifikasi terakhir; namun, jika ukuran objek cocok, tetapi waktu modifikasi berbeda atau tidak ada, gcloud storage rsync akan otomatis melakukan perbandingan checksum.

gcloud storage rsync melakukan operasi secara paralel secara default untuk performa yang lebih baik. gsutil rsync berjalan secara berurutan kecuali jika flag -m tingkat teratas digunakan.

gsutil rsync mengikuti link simbolis secara default. gcloud storage rsync mengabaikannya secara default, kecuali jika tanda --no-ignore-symlinks digunakan.

Operasi Perintah gsutil Perintah gcloud storage
Menetapkan metadata pada objek yang diupload
gsutil setmeta
gcloud storage objects update
Catatan

gsutil setmeta menggunakan satu tanda -h yang dapat diulang untuk menentukan metadata yang akan ditetapkan atau dihapus. gcloud storage objects update menggunakan tanda yang berbeda untuk setiap kolom metadata (misalnya: --content-type, --clear-cache-control, atau --update-custom-metadata).

Di gsutil setmeta, tanda -h digunakan untuk menetapkan nama header lengkap (misalnya: -h "x-goog-meta-icecreamflavor:vanilla"). Di gcloud storage objects update, tanda --update-custom-metadata digunakan sebagai gantinya dan mengambil pasangan nilai kunci (misalnya: --update-custom-metadata=icecreamflavor=vanilla). Untuk menghapus kolom metadata kustom, gsutil setmeta menggunakan -h "x-goog-meta-icecreamflavor", sedangkan gcloud storage objects update menggunakan --remove-custom-metadata=icecreamflavor.

Operasi Perintah gsutil Perintah gcloud storage
Menampilkan status objek
gsutil stat
gcloud storage objects list --stat --fetch-encrypted-object-hashes
Catatan

Format output gcloud storage objects list --stat berbeda dengan format output gsutil stat, dengan masalah umum terkait dengan spasi yang tidak konsisten. Skrip yang ditulis untuk mengurai output gsutil stat mungkin memerlukan penyesuaian untuk menangani format output baru.