Halaman ini menunjukkan cara menyalin, mengganti nama, dan memindahkan objek. Meskipun beberapa alat melakukan operasi pemindahan objek atomik, alat lain menyimulasikan operasi pemindahan objek dengan menyalin objek ke lokasi baru yang ditentukan, lalu menghapus objek asli.
- Untuk mengetahui petunjuk tentang cara menyalin objek, lihat Menyalin objek.
- Untuk mengetahui petunjuk tentang cara memindahkan atau mengganti nama objek dengan menyalinnya, lihat Memindahkan atau mengganti nama objek dengan menyalin.
- Untuk mengetahui petunjuk tentang cara mengganti nama objek secara atomik, lihat Mengganti nama objek secara atomik.
Sebaiknya gunakan Storage Transfer Service untuk memindahkan data berukuran lebih dari 1 TB antar bucket.
Sebelum memulai
Untuk menyalin, mengganti nama, atau memindahkan objek, Anda harus mendapatkan peran IAM yang diperlukan. Bagian berikut menjelaskan persyaratan IAM untuk berbagai kasus penggunaan.
Menyalin objek (termasuk memindahkan atau mengganti nama dengan menyalin)
Untuk mendapatkan izin yang diperlukan untuk menyalin objek, minta administrator untuk memberi Anda peran IAM berikut pada bucket sumber yang berisi objek yang ingin Anda pindahkan, atau bucket tujuan tempat Anda ingin memindahkan objek:
-
Storage Object Viewer (
roles/storage.objectViewer
) di bucket sumber -
Storage Object User (
roles/storage.objectUser
) di bucket tujuan -
Untuk menyalin objek menggunakan konsol Google Cloud :
Peran dasar Viewer (
roles/viewer
) di bucket sumber dan bucket tujuan, selainroles/storage.objectViewer
danroles/storage.objectUser
Peran bawaan ini berisi izin yang diperlukan untuk menyalin objek. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk menyalin objek:
-
storage.objects.get
di bucket sumber -
storage.objects.create
di bucket tujuan -
storage.objects.delete
(hanya diperlukan jika Anda mengganti atau menimpa objek di bucket tujuan sebagai bagian dari operasi penyalinan atau pemindahan objek) di bucket tujuan -
storage.objects.delete
(hanya diperlukan jika Anda memindahkan objek menggunakan operasi salin dan hapus yang mendasarinya) di bucket sumber -
storage.folders.create
(hanya diperlukan jika objek yang Anda pindahkan berada di folder yang ingin Anda buat di bucket tujuan) di bucket tujuan -
storage.objects.list
(hanya diperlukan jika Anda menyalin, memindahkan, atau mengganti nama objek menggunakan konsol Google Cloud ) di bucket sumber dan tujuan -
storage.buckets.list
(hanya diperlukan jika Anda menyalin, memindahkan, atau mengganti nama objek menggunakan konsol Google Cloud ) di project yang berisi bucket sumber dan tujuan
Anda juga bisa mendapatkan izin ini dengan peran khusus.
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.
Jika objek yang ingin Anda salin mengaktifkan fitur tertentu, Anda mungkin memerlukan peran tambahan atau alternatif. Misalnya, jika objek yang ingin Anda salin memiliki
konfigurasi retensi objek yang ingin Anda pertahankan, Anda memerlukan peran di
bucket tujuan yang mencakup izin storage.objects.setRetention
, seperti peran Storage Object Admin (roles/storage.objectAdmin
).
Untuk mengetahui informasi selengkapnya, lihat
Izin IAM untuk Cloud Storage.
Mengganti nama objek secara atomik
Untuk mendapatkan izin yang diperlukan untuk mengganti nama objek secara atomik, minta administrator Anda untuk memberi Anda peran IAM Storage Object User (roles/storage.objectUser
) di bucket yang berisi objek yang ingin Anda ganti namanya.
Peran bawaan ini berisi izin yang diperlukan untuk mengganti nama objek secara atomik. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengganti nama objek secara atomik:
-
storage.objects.move
-
storage.objects.create
-
storage.objects.delete
(hanya diperlukan jika Anda mengganti atau mengganti objek)
Anda juga bisa mendapatkan izin ini dengan peran khusus.
Untuk mengetahui informasi tentang cara memberikan peran pada bucket, lihat Menggunakan IAM dengan bucket.
Menyalin objek
Bagian ini menjelaskan cara menyalin objek. Anda dapat menyalin objek dari satu bucket ke bucket lain.
Konsol
- Di Google Cloud konsol, 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 Tujuan, 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 Copy.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di Google Cloud konsol, lihat Pemecahan masalah.
Command line
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
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.
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI, yang memungkinkan Anda membuat token akses untuk header
Authorization
.Gunakan
cURL
untuk memanggil JSON API dengan permintaanPOST
Object: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:
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 }
XML API
Menginstal dan melakukan inisialisasi gcloud CLI, yang memungkinkan Anda membuat token akses untuk header
Authorization
.Gunakan
cURL
untuk memanggil XML API dengan permintaanPUT
Object: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:
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 dengan menyalin
Bagian ini menjelaskan cara memindahkan atau mengganti nama objek menggunakan operasi penyalinan objek yang mendasarinya. Alat yang dijelaskan di bagian ini melakukan pemindahan dan penggantian nama objek dengan menyalin objek asli ke namespace lain, lalu menghapus objek asli.
Konsol
- Di Google Cloud konsol, buka halaman Bucket Cloud Storage.
Dalam daftar bucket, klik nama bucket yang berisi objek yang ingin Anda pindahkan.
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 Google Cloud konsol, lihat Pemecahan masalah.
Command line
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 tempat Anda ingin memindahkan objek. 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
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.
REST API
JSON API
Untuk mengetahui petunjuk JSON API tentang cara memindahkan atau mengganti nama objek dengan menyalin, lihat Menyalin objek.
XML API
Untuk petunjuk XML API tentang cara memindahkan atau mengganti nama objek dengan menyalin, lihat Menyalin objek.
Mengganti nama objek secara atomik
Bagian ini menjelaskan cara mengganti nama objek secara atomik dalam bucket.
Untuk mengganti nama objek, Anda dapat menggunakan metode Objects: move
di
Cloud Storage JSON API.
REST API
JSON API
Untuk mengganti nama objek secara atomik, lakukan hal 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:
BUCKET_NAME
adalah nama bucket yang berisi objek yang ingin Anda ganti namanya. Contoh,my-bucket
.SOURCE_OBJECT_NAME
adalah nama objek yang dienkode ke URL yang ingin Anda ganti namanya. Misalnya,pets/dog.png
, dienkode URL sebagaipets%2Fdog.png
.DESTINATION_OBJECT_NAME
adalah nama yang dienkode ke URL yang ingin Anda gunakan. Contohnya,pets/cat.png
, yang berenkode URL menjadipets%2Fcat.png
.
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.