Halaman ini menunjukkan cara membuat objek yang Anda miliki dapat dibaca oleh semua orang di internet publik. Untuk mempelajari cara mengakses data yang telah dipublikasikan, lihat Mengakses Data Publik.
Saat sebuah objek dibagikan secara publik, setiap pengguna yang memiliki pengetahuan tentang URI objek dapat mengakses objek tersebut selama objek tersebut bersifat publik.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan agar objek dapat dibaca oleh publik, minta administrator untuk memberi Anda peran berikut untuk bucket yang berisi data yang ingin Anda publikasikan:
Untuk membuat semua objek dalam bucket dapat dibaca oleh publik: Storage Admin (
roles/storage.admin
)Untuk membuat setiap objek dapat dibaca oleh publik: Storage Object Admin (
roles/storage.objectAdmin
)- Jika berencana menggunakan konsol Google Cloud, Anda memerlukan peran Storage Admin (
roles/storage.admin
), bukan peran Storage Object Admin.
- Jika berencana menggunakan konsol Google Cloud, Anda memerlukan peran Storage Admin (
Peran ini berisi izin yang diperlukan untuk membuat objek bersifat publik. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
Izin berikut hanya diperlukan untuk menggunakan Konsol Google Cloud guna melakukan tugas di halaman ini:
storage.buckets.list
storage.objects.list
Anda mungkin juga bisa mendapatkan izin ini dengan peran standar atau peran khusus lainnya.
Untuk petunjuk cara memberikan peran pada bucket, lihat Menggunakan IAM dengan bucket.
Membuat semua objek dalam bucket dapat dibaca oleh publik
Agar semua objek dalam bucket dapat dibaca oleh semua orang di internet publik,
berikan peran Storage Object Viewer
(roles/storage.objectViewer
) kepada akun utama allUsers
:
Konsol
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Dalam daftar bucket, klik nama bucket yang ingin Anda tampilkan kepada publik.
Pilih tab Permissions di dekat bagian atas halaman.
Di bagian Permissions, klik tombol
Grant access.Dialog Berikan akses akan muncul.
Di kolom New principals, masukkan
allUsers
.Di drop-down Select a role, masukkan
Storage Object Viewer
di kotak filter lalu pilih Storage Object Viewer dari hasil yang difilter.Klik Simpan.
Klik Allow public access.
Setelah akses publik diberikan, Copy URL akan muncul untuk setiap objek di kolom public access. Anda dapat mengklik tombol ini untuk mendapatkan URL publik untuk objek tersebut.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di Konsol Google Cloud, lihat Pemecahan masalah.
Command line
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Di lingkungan pengembangan Anda, jalankan perintah
buckets add-iam-policy-binding
:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
Dengan
BUCKET_NAME
adalah nama bucket yang objeknya ingin Anda tampilkan kepada publik. Contoh,my-bucket
.
Library klien
C++
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.
C#
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.
Go
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.
Java
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.
Node.js
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.
PHP
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.
Python
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.
Ruby
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.
Terraform
Anda dapat menggunakan resource Terraform untuk menjadikan semua objek dalam bucket bersifat publik.
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Buat file JSON yang berisi informasi berikut:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Gunakan
cURL
untuk memanggil JSON API dengan permintaan BucketPUT
:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Dengan keterangan:
JSON_FILE_NAME
adalah jalur untuk file yang Anda buat di Langkah 2.BUCKET_NAME
adalah nama bucket dengan objek yang ingin Anda tampilkan kepada publik. Contoh,my-bucket
.
XML API
Anda tidak bisa membuat agar semua objek dalam bucket dapat dibaca secara publik dengan
XML API. Gunakan Konsol Google Cloud atau gcloud storage
.
Membuat sebagian bucket dapat dibaca oleh publik
Gunakan folder terkelola untuk mengontrol akses ke objek yang awalan namanya cocok dengan nama folder terkelola. Misalnya, folder terkelola bernama my-folder
dapat digunakan untuk mengontrol akses ke objek bernama my-folder/cats.jpg
dan my-folder/dogs.jpg
.
Agar objek tersebut dapat diakses secara publik, buat folder terkelola terlebih dahulu, lalu tetapkan kebijakan IAM di folder yang memberikan peran Storage Object Viewer (roles/storage.objectViewer
) ke allUsers
:
Konsol
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Klik nama bucket yang berisi objek yang ingin Anda tampilkan kepada publik.
Buat folder, menggunakan langkah-langkah berikut:
Klik tombol Create folder.
Masukkan Nama untuk folder. Setelah folder dikonversi menjadi folder terkelola, objek yang namanya diawali dengan nama ini akan tunduk pada peran IAM yang ditetapkan di folder.
Klik Create.
Konversikan folder menjadi folder terkelola, menggunakan langkah-langkah berikut:
Di panel yang menampilkan konten bucket, temukan nama folder yang Anda buat, lalu klik ikon Opsi lainnya
.Klik Edit akses.
Di jendela yang muncul, klik Aktifkan.
Tambahkan kebijakan IAM ke folder yang memberikan peran Storage Object Viewer (
roles/storage.objectViewer
) kepadaallUsers
, menggunakan langkah-langkah berikut:Jika panel Permissions untuk folder terkelola belum terbuka, klik ikon More options
untuk folder terkelola, lalu klik Edit access.Di panel Permissions, klik tombol
Add principal.Di kolom New principals, masukkan
allUsers
.Di drop-down Select a role, masukkan
Storage Object Viewer
di kotak filter, lalu pilih Storage Object Viewer dari hasil yang difilter.Klik Simpan.
Klik Allow public access.
Setelah akses publik diberikan, Copy URL akan muncul untuk setiap objek yang berlaku di kolom public access. Anda dapat mengklik tombol ini untuk mendapatkan URL publik bagi objek tersebut.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di Konsol Google Cloud, lihat Pemecahan masalah.
Command line
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Di lingkungan pengembangan Anda, buat folder terkelola menggunakan perintah
gcloud storage managed-folders create
:gcloud storage managed-folders create gs://BUCKET_NAME/MANAGED_FOLDER_NAME/
Dengan keterangan:
BUCKET_NAME
adalah nama bucket tempat Anda ingin membuat folder terkelola. Contoh,my-bucket
.MANAGED_FOLDER_NAME
adalah nama folder dikelola yang ingin Anda buat. Contoh,my-managed-folder
.
Di lingkungan pengembangan Anda, tambahkan
allUsers
ke kebijakan IAM folder terkelola menggunakan perintahgcloud storage managed-folders add-iam-policy-binding
:gcloud storage managed-folders add-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=allUsers --role=roles/storage.objectViewer
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang berisi folder terkelola tempat Anda menambahkan kebijakan IAM. Contoh,my-bucket
.MANAGED_FOLDER_NAME
adalah nama folder terkelola yang ingin Anda tambahkan akses publik. Contoh,my-managed-folder
.
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Buat file JSON yang berisi informasi berikut:
{ "name": "MANAGED_FOLDER_NAME" }
Dengan
MANAGED_FOLDER_NAME
adalah nama folder terkelola yang ingin Anda buat. Contoh,my-managed-folder
.Gunakan
cURL
untuk memanggil JSON API dengan permintaanInsert ManagedFolder
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders"
Dengan keterangan:
JSON_FILE_NAME
adalah jalur untuk file yang Anda buat di langkah sebelumnya.BUCKET_NAME
adalah nama bucket tempat Anda ingin membuat folder terkelola. Contoh,my-bucket
.
Buat file JSON yang berisi informasi berikut:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Gunakan
cURL
untuk memanggil JSON API dengan permintaansetIamPolicy
ManagedFolder:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Dengan keterangan:
JSON_FILE_NAME
adalah jalur untuk file yang Anda buat di langkah sebelumnya.BUCKET_NAME
adalah nama bucket yang berisi folder terkelola tempat Anda menambahkan kebijakan IAM. Contoh,my-bucket
.MANAGED_FOLDER_NAME
adalah nama folder terkelola tempat Anda menambahkan kebijakan IAM. Contoh,my-managed-folder
.
XML API
XML API tidak mendukung penggunaan folder terkelola. Gunakan alat yang berbeda, seperti Konsol Google Cloud, atau tetapkan ACL pada setiap objek menggunakan permintaan Set Object ACL
. Berikut adalah contoh file ACL yang akan memberikan akses allUsers
ke objek:
<AccessControlList> <Entries> <Entry> <Scope type="AllUsers"/> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Langkah selanjutnya
- Mengakses data yang telah disediakan untuk publik.
- Pelajari opsi kontrol akses lainnya untuk bucket dan objek Anda.