Halaman ini menunjukkan cara menyalin, mengganti nama, dan memindahkan objek di dalam dan di antara bucket di Cloud Storage.
Perlu diperhatikan bahwa meskipun beberapa alat di Cloud Storage membuat pemindahan objek atau penggantian nama tampak sebagai operasi unik, alat tersebut selalu merupakan operasi penyalinan yang diikuti dengan operasi penghapusan objek asli, karena objektidak dapat diubah.
Salin objek
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna menyalin objek, minta
administrator untuk memberi Anda peran Storage Object Viewer
(roles/storage.objectViewer
) di bucket sumber dan
peran Storage Object User (roles/storage.objectUser
) di
bucket tujuan. Jika Anda berencana menggunakan konsol Google Cloud, minta
administrator untuk memberi Anda peran dasar `Viewer` pada project yang berisi
bucket sumber dan tujuan, selain memberikan peran Storage Object Viewer dan Storage Object User.
Peran ini berisi izin berikut, yang diperlukan untuk menyalin objek:
storage.objects.get
pada bucket sumberstorage.objects.create
pada bucket tujuanstorage.objects.delete
pada bucket tujuan (hanya diperlukan jika menimpa objek)
Saat menggunakan konsol Google Cloud, Anda juga harus memiliki izin berikut:
storage.objects.list
pada bucket sumber dan tujuanstorage.buckets.list
pada project yang berisi bucket sumber dan tujuan
Jika objek yang ingin disalin telah mengaktifkan fitur, Anda mungkin memerlukan peran alternatif. Misalnya, jika objek yang ingin disalin memiliki konfigurasi retensi objek yang ingin dipertahankan, Anda memerlukan peran di bucket tujuan yang menyertakan izin storage.objects.setRetention
, seperti peran Storage Object Admin (roles/storage.objectAdmin
).
Anda mungkin bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Untuk petunjuk cara memberikan peran pada bucket, lihat Menggunakan IAM dengan bucket.
Untuk mengetahui petunjuk cara memberikan peran di project, lihat Mengelola akses ke project.
Untuk menyalin objek di salah satu bucket Cloud Storage Anda:
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Dalam daftar bucket, klik nama bucket yang berisi objek yang ingin disalin.
Halaman Detail bucket akan terbuka, dan tab Objek akan dipilih.
Buka objek, yang mungkin terletak dalam folder.
Klik menu Object overflow (more_vert) yang terkait dengan objek.
Klik Copy.
Panel Salin objek akan muncul.
Di kolom Destination, ketik nama bucket tujuan dan nama objek yang disalin.
Atau, Anda dapat mengklik Jelajahi untuk memilih tujuan, tetapi opsi penjelajahan dibatasi untuk bucket dalam project saat ini.
Klik Salin.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di konsol Google Cloud, lihat Pemecahan masalah.
Gunakan perintah gcloud storage cp
:
gcloud storage cp gs://SOURCE_BUCKET_NAME /SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME /NAME_OF_COPY
Dengan keterangan:
SOURCE_BUCKET_NAME
adalah nama bucket yang berisi objek yang ingin Anda salin. Contoh,my-bucket
.SOURCE_OBJECT_NAME
adalah nama objek yang ingin Anda salin. Contoh,pets/dog.png
.DESTINATION_BUCKET_NAME
adalah nama bucket tempat Anda ingin menyalin objek. Contoh,another-bucket
.NAME_OF_COPY
adalah nama yang ingin Anda berikan ke salinan objek. Contoh,shiba.png
.
Jika berhasil, responsnya akan terlihat mirip dengan contoh berikut:
Copying gs://example-bucket/file.txt to gs://other-bucket/file-copy.txt Completed files 1/1 | 164.3kiB/164.3kiB
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C++ API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Gunakan
cURL
untuk memanggil JSON API dengan permintaan ObjekPOST
:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ "https://storage.googleapis.com/storage/v1/b/
SOURCE_BUCKET_NAME /o/SOURCE_OBJECT_NAME /rewriteTo/b/DESTINATION_BUCKET_NAME /o/NAME_OF_COPY "Dengan keterangan:
SOURCE_BUCKET_NAME
adalah nama bucket yang berisi objek yang ingin Anda salin. Contoh,my-bucket
.SOURCE_OBJECT_NAME
adalah nama objek yang berenkode URL yang ingin Anda salin. Misalnya,pets/dog.png
, dienkode URL sebagaipets%2Fdog.png
.DESTINATION_BUCKET_NAME
adalah nama bucket tempat Anda ingin menyalin objek. Contoh,another-bucket
.NAME_OF_COPY
adalah nama berenkode URL yang ingin Anda berikan salinan objek. Contoh,shiba.png
.
Karena metode
rewrite
menyalin data dalam bagian berukuran terbatas, salinan Anda mungkin memerlukan beberapa permintaan, terutama untuk objek besar.Misalnya, respons berikut terhadap permintaan
rewrite
menunjukkan bahwa Anda perlu membuat permintaanrewrite
tambahan:{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 1048576, "objectSize": 10000000000, "done": false, "rewriteToken":
TOKEN_VALUE }Gunakan
rewriteToken
dalam permintaan berikutnya untuk melanjutkan penyalinan data:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ -d '{"rewriteToken": "
TOKEN_VALUE "}' \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME /o/SOURCE_OBJECT_NAME /rewriteTo/b/DESTINATION_BUCKET_NAME /o/NAME_OF_COPY "Dengan keterangan:
TOKEN_VALUE
adalah nilairewriteToken
yang ditampilkan dalam permintaan sebelumnya.- Semua nilai lainnya cocok dengan yang digunakan dalam permintaan sebelumnya.
Saat objek disalin sepenuhnya, respons terakhir memiliki properti
done
yang disetel ketrue
, tidak ada propertirewriteToken
, dan metadata salinan disertakan dalam propertiresource
.{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 10000000000, "objectSize": 10000000000, "done": true, "resource": objects Resource }
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Gunakan
cURL
untuk memanggil XML API dengan permintaan ObjekPUT
:curl -X PUT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-copy-source:
SOURCE_BUCKET_NAME /SOURCE_OBJECT_NAME " \ "https://storage.googleapis.com/DESTINATION_BUCKET_NAME /NAME_OF_COPY "Dengan keterangan:
SOURCE_BUCKET_NAME
adalah nama bucket yang berisi objek yang ingin Anda salin. Contoh,my-bucket
.SOURCE_OBJECT_NAME
adalah nama objek yang ingin Anda salin. Contoh,pets/dog.png
.DESTINATION_BUCKET_NAME
adalah nama bucket tempat Anda ingin menyalin objek. Contoh,another-bucket
.NAME_OF_COPY
adalah nama berenkode URL yang ingin Anda berikan salinan objek. Contoh,shiba.png
.
Memindahkan atau mengganti nama objek
Peran yang diperlukan untuk memindahkan atau mengganti nama objek di bucket tanpa mengaktifkan namespace hierarkis
Untuk mendapatkan izin yang diperlukan guna menyalin objek, minta
administrator untuk memberi Anda peran Storage Object Viewer
(roles/storage.objectViewer
) di bucket sumber dan
peran Storage Object User (roles/storage.objectUser
) di
bucket tujuan. Jika Anda berencana menggunakan konsol Google Cloud, minta
administrator untuk memberi Anda peran dasar `Viewer` pada project yang berisi
bucket sumber dan tujuan, selain memberikan peran Storage Object Viewer dan Storage Object User.
Peran ini berisi izin berikut, yang diperlukan untuk menyalin objek:
storage.objects.get
pada bucket sumberstorage.objects.create
pada bucket tujuanstorage.objects.delete
di bucket tujuan (hanya diperlukan untuk mengganti objek)
Saat menggunakan konsol Google Cloud, Anda juga harus memiliki izin berikut:
storage.objects.list
pada bucket sumber dan tujuanstorage.buckets.list
pada project yang berisi bucket sumber dan tujuan
Jika objek yang ingin disalin telah mengaktifkan fitur, Anda mungkin memerlukan peran alternatif. Misalnya, jika objek yang ingin disalin memiliki konfigurasi retensi objek yang ingin dipertahankan, Anda memerlukan peran di bucket tujuan yang menyertakan izin storage.objects.setRetention
, seperti peran Storage Object Admin (roles/storage.objectAdmin
).
Anda juga bisa mendapatkan izin ini dengan peran khusus. Anda mungkin juga bisa mendapatkan izin ini dengan peran standar lainnya.
Untuk petunjuk cara memberikan peran pada bucket, lihat Menggunakan IAM dengan bucket.
Untuk mengetahui petunjuk cara memberikan peran di project, lihat Mengelola akses ke project.
Peran yang diperlukan untuk memindahkan atau mengganti nama objek di bucket dengan namespace hierarkis yang diaktifkan
Untuk mendapatkan izin yang diperlukan guna memindahkan atau mengganti nama objek,
minta administrator untuk memberi Anda peran Storage Object User (roles/storage.objectUser
) pada objek. Jika Anda berencana menggunakan konsol Google Cloud, minta
administrator untuk memberi Anda peran dasar `Pelihat` di project yang
berisi bucket, selain memberikan peran Storage
Object User.
Peran ini berisi izin berikut yang diperlukan untuk memindahkan atau mengganti nama objek di bucket dengan namespace hierarkis yang diaktifkan:
- Izin yang diperlukan pada objek sumber:
storage.objects.delete
danstorage.objects.get
atau
storage.objects.move
(hanya diperlukan untuk memindahkan objek tanpa mengizinkan akses baca atau hapus)- Izin yang diperlukan pada objek tujuan:
storage.objects.create
storage.objects.delete
(hanya diperlukan untuk mengganti objek)storage.folders.create
(hanya diperlukan untuk membuat folder induk yang hilang secara otomatis)
Saat menggunakan konsol Google Cloud, Anda juga harus memiliki izin berikut:
storage.objects.list
pada bucket sumber dan tujuanstorage.buckets.list
pada project yang berisi bucket sumber dan tujuan
Anda juga bisa mendapatkan izin ini dengan peran khusus. Anda mungkin juga bisa mendapatkan izin ini dengan peran standar lainnya.
Untuk petunjuk cara memberikan peran pada bucket, lihat Menggunakan IAM dengan bucket.
Untuk mengetahui petunjuk cara memberikan peran di project, lihat Mengelola akses ke project.
Untuk memindahkan objek di Cloud Storage antar bucket, atau mengganti nama objek di dalam bucket:
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Dalam daftar bucket, klik nama bucket yang berisi objek yang ingin dipindahkan atau diganti namanya.
Halaman Detail bucket akan terbuka, dan tab Objek akan dipilih.
Buka objek, yang mungkin terletak dalam folder.
Klik menu Object overflow (more_vert) yang terkait dengan objek.
Jika ingin memberi nama baru untuk objek di bucket yang sama, klik Ganti nama.
Di jendela overlay yang muncul, masukkan nama baru untuk objek.
Klik Ganti nama.
Jika Anda ingin memindahkan objek ke bucket lain, klik Pindahkan.
Di jendela overlay yang muncul, klik Jelajahi.
Pilih tujuan untuk objek yang Anda pindahkan.
Klik Select.
Klik Pindahkan.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di Konsol Google Cloud, lihat Pemecahan masalah.
Gunakan perintah gcloud storage mv
:
gcloud storage mv gs://SOURCE_BUCKET_NAME /SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME /DESTINATION_OBJECT_NAME
Dengan keterangan:
SOURCE_BUCKET_NAME
adalah nama bucket yang berisi objek yang ingin dipindahkan atau diganti namanya. Contoh,my-bucket
.SOURCE_OBJECT_NAME
adalah nama objek yang ingin Anda pindahkan atau ganti namanya. Contoh,pets/dog.png
.DESTINATION_BUCKET_NAME
adalah nama bucket yang menyimpan objek yang dipindahkan atau diganti namanya. Contoh,another-bucket
.DESTINATION_OBJECT_NAME
adalah nama yang Anda inginkan untuk objek setelah pemindahan atau penggantian nama. Contoh,shiba.png
.
Jika berhasil, responsnya akan terlihat mirip dengan contoh berikut:
Copying gs://example-bucket/old-file.txt to gs://new-bucket/new-file.txt Removing gs://example-bucket/old-file.txt... Completed files 1/1 | 164.3kiB/164.3kiB
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C++ API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk memindahkan atau mengganti nama objek di bucket tanpa mengaktifkan namespace hierarkis, atau untuk memindahkannya antar-bucket, pertama-tama buat salinan objek yang memiliki properti yang Anda inginkan, lalu hapus objek asli.
Untuk memindahkan objek di bucket dengan namespace hierarkis yang diaktifkan, lakukan tindakan berikut:
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Gunakan
cURL
untuk memanggil JSON API dengan permintaanObjects: move
:curl -X POST
-H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "Content-Length: 0"
"https://storage.googleapis.com/storage/v1/b/BUCKET_NAME /o/SOURCE_OBJECT_NAME /moveTo/o/DESTINATION_OBJECT_NAME "Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang berisi objek yang ingin Anda pindahkan. Contoh,my-bucket
.SOURCE_OBJECT_NAME
adalah nama objek yang dienkode ke URL yang ingin Anda pindahkan. Contohnya,pets/dog.png
, yang berenkode URL menjadipets%2Fdog.png
.DESTINATION_OBJECT_NAME
adalah nama objek baru yang dienkode ke URL. Contoh,pets/cat.png
, URL dienkode sebagaipets%2cat.png
.
Untuk memindahkan atau mengganti nama objek menggunakan XML API secara langsung, pertama-tama buat salinan objek yang memiliki properti yang Anda inginkan, lalu hapus objek asli.
Sebaiknya gunakan Storage Transfer Service untuk memindahkan data berukuran lebih dari 1 TB antar bucket.
Langkah berikutnya
- Mengubah kelas penyimpanan objek.
- Mengedit metadata objek.
- Membuat objek dan bucket dapat diakses secara publik.
- Pelajari lebih lanjut persyaratan penamaan objek.
- Pelajari cara menggunakan prasyarat permintaan untuk mencegah kondisi race.