Beralih dari gsutil ke gcloud storage

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

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

Perbedaan perilaku

Bagian berikut menjelaskan perbedaan perilaku antara gsutil dan gcloud storage.

Pemanggilan paralel

gcloud storage tidak mendukung pemanggilan paralel menggunakan beberapa terminal di mesin yang sama.

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 diperlakukan sebagai satu tanda bintang (*).

Penanganan bucket namespace hierarkis

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

Dukungan untuk penyalinan file lokal ke lokal

gcloud storage dirancang khusus untuk berinteraksi dengan Cloud Storage dan tidak mendukung penyalinan file lokal ke lokal. Untuk memindahkan data dengan berhasil menggunakan gcloud storage, setidaknya satu argumen (sumber atau tujuan) harus berupa URI resource Cloud Storage. Misalnya: gs://my-bucket.

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 penguraian output perintah gsutil, Anda harus meninjau dan memperbaruinya untuk format gcloud storage sebelum melakukan transisi.

Perintah gcloud yang setara

Semua perintah gsutil yang ada memiliki perintah yang setara di gcloud storage, dengan beberapa pengecualian. Anda bisa mendapatkan daftar lengkap perintah gcloud storage dengan mengunjungi dokumentasi referensi atau dengan menjalankan gcloud storage --help. Tabel berikut menguraikan secara singkat perubahan dari perintah gsutil yang 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 ke dalam 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 Google Cloud konsol 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 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 dan ditentukan di 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 flag aditif untuk menyertakan hash tertentu, seperti -c atau -m. gcloud storage hash menggunakan flag subtraktif 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 tertentu 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 berdasarkan nama bucket.

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

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

gcloud storage selalu menampilkan tanggal dan waktu dalam UTC.

gcloud storage menampilkan pesan error 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, perintah 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 tersebut kemudian dienkripsi dengan kunci KMS default bucket atau dengan enkripsi yang dikelola Google.

gsutil rewrite menyertakan logika untuk melewati penulisan ulang objek jika transformasi yang diminta tidak akan mengubah statusnya (misalnya, jika objek sudah berada dalam class penyimpanan target). gcloud storage objects update mungkin tidak melakukan pemeriksaan yang sama, sehingga 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 yang menyebabkan gsutil dan gcloud storage berperilaku berbeda saat flag -l dan -r digunakan bersama-sama. Skrip yang menyalurkan daftar direktori yang akan dihapus secara rekursif harus diuji secara menyeluruh sebelum bertransisi 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 cocok antara sumber dan tujuan. Tindakan ini hanya melakukan perbandingan checksum yang lebih menyeluruh jika objek tidak memiliki waktu modifikasi, atau jika Anda memaksanya secara manual dengan flag -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, tindakan ini 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 atas digunakan.

gsutil rsync mengikuti link simbolis secara default. gcloud storage rsync mengabaikannya secara default kecuali jika flag --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 flag -h yang dapat diulang untuk menentukan metadata yang akan ditetapkan atau dihapus. gcloud storage objects update menggunakan flag yang berbeda untuk setiap kolom metadata (misalnya: --content-type, --clear-cache-control, atau --update-custom-metadata).

Di gsutil setmeta, flag -h digunakan untuk menetapkan nama header lengkap (misalnya: -h "x-goog-meta-icecreamflavor:vanilla"). Di gcloud storage objects update, flag --update-custom-metadata digunakan sebagai gantinya dan mengambil key-value pair (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 spasi yang tidak konsisten. Skrip yang ditulis untuk mengurai output gsutil stat mungkin memerlukan penyesuaian untuk menangani format output gcloud storage objects list --stat.

Langkah berikutnya

Untuk mengetahui detail selengkapnya tentang pemetaan perintah dan flag, lihat Referensi migrasi di repositori GitHub gsutil.