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.
Izin yang diperlukan
Konsol
Untuk menyelesaikan panduan ini menggunakan konsol Google Cloud, Anda harus memiliki izin IAM yang tepat. Jika objek atau bucket yang ingin Anda akses ada di project yang tidak Anda buat, Anda mungkin perlu pemilik project untuk memberi Anda peran yang berisi izin yang diperlukan.
Untuk mengetahui daftar izin yang diperlukan untuk tindakan tertentu, lihat Izin IAM untuk konsol Google Cloud.
Untuk daftar peran yang relevan, lihat peran Cloud Storage. Atau, Anda dapat membuat peran khusus yang memiliki izin tertentu dan terbatas.
Command line
Untuk menyelesaikan panduan ini menggunakan utilitas command line, Anda harus memiliki izin IAM yang tepat. Jika objek atau bucket yang ingin Anda akses ada pada project yang tidak Anda buat, Anda mungkin memerlukan pemilik project untuk memberi Anda peran yang berisi izin yang diperlukan.
Untuk mengetahui daftar izin yang diperlukan untuk tindakan tertentu, lihat Izin IAM untuk perintah gcloud storage
.
Untuk daftar peran yang relevan, lihat peran Cloud Storage. Atau, Anda dapat membuat peran khusus yang memiliki izin tertentu dan terbatas.
Library klien
Untuk menyelesaikan panduan ini menggunakan library klien Cloud Storage, Anda harus memiliki izin IAM yang tepat. Jika objek atau bucket yang ingin Anda akses ada di project yang tidak Anda buat, Anda mungkin memerlukan pemilik project untuk memberi Anda peran yang berisi izin yang diperlukan.
Kecuali jika dinyatakan lain, permintaan library klien dibuat melalui JSON API dan memerlukan izin seperti yang tercantum dalam izin IAM untuk metode JSON. Untuk melihat metode JSON API mana yang dipanggil saat Anda membuat permintaan menggunakan library klien, buat log permintaan mentah.
Untuk daftar peran IAM yang relevan, lihat peran Cloud Storage. Atau, Anda dapat membuat peran khusus yang memiliki izin tertentu dan terbatas.
REST API
JSON API
Untuk menyelesaikan panduan ini menggunakan JSON API, Anda harus memiliki izin IAM yang sesuai. Jika objek atau bucket yang ingin Anda akses ada di project yang tidak Anda buat, Anda mungkin perlu pemilik project untuk memberi Anda peran yang berisi izin yang diperlukan.
Untuk mengetahui daftar izin yang diperlukan untuk tindakan tertentu, lihat Izin IAM untuk metode JSON.
Untuk daftar peran yang relevan, lihat peran Cloud Storage. Atau, Anda dapat membuat peran khusus yang memiliki izin tertentu dan terbatas.
Membuat setiap objek dapat dibaca oleh publik
Agar setiap objek dapat dibaca oleh semua orang di internet publik:
Konsol
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Klik nama bucket yang berisi objek yang ingin Anda tampilkan kepada publik, dan buka objek tersebut jika berada di subdirektori.
Klik nama objek.
Klik Akses edit.
Di overlay yang muncul, klik tombol add_box Add entry.
Tambahkan izin untuk allUsers.
- Pilih Public untuk Entity.
- Pilih allUsers untuk Name.
- Pilih Reader untuk Access.
Klik Save.
Setelah akses publik diberikan, Copy URL akan muncul 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
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Di lingkungan pengembangan Anda, jalankan perintah
objects update
dengan flag--add-acl-grant
:gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --add-acl-grant=entity=AllUsers,role=READER
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang berisi objek yang ingin Anda tampilkan kepada publik. Contoh,my-bucket
.OBJECT_NAME
adalah nama objek yang ingin Anda tampilkan kepada publik. Contoh,pets/dog.png
.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST API
JSON API
Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header
Authorization
.Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header
Authorization
.Buat file JSON yang berisi informasi berikut:
{ "entity": "allUsers", "role": "READER" }
Gunakan
cURL
untuk memanggil JSON API dengan permintaan ACLInsert
: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/o/OBJECT_NAME/acl"
Dengan keterangan:
JSON_FILE_NAME
adalah jalur untuk file yang Anda buat di Langkah 2.BUCKET_NAME
adalah nama bucket yang berisi objek yang ingin Anda tampilkan kepada publik. Contoh,my-bucket
.OBJECT_NAME
adalah nama objek yang berenkode URL yang ingin Anda tampilkan kepada publik. Contohnya,pets/dog.png
, yang berenkode URL menjadipets%2Fdog.png
.
XML API
Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header
Authorization
.Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header
Authorization
.Buat file XML yang berisi informasi berikut:
<AccessControlList> <Entries> <Entry> <Scope type="AllUsers"/> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Gunakan
cURL
untuk memanggil XML API dengan permintaanSet Object ACL
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?acl"
Dengan keterangan:
XML_FILE_NAME
adalah jalur untuk file yang Anda buat di Langkah 2.BUCKET_NAME
adalah nama bucket yang berisi objek yang ingin Anda tampilkan kepada publik. Contoh,my-bucket
.OBJECT_NAME
adalah nama objek yang berenkode URL yang ingin Anda tampilkan kepada publik. Contohnya,pets/dog.png
, yang berenkode URL menjadipets%2Fdog.png
.
Membuat semua objek dalam bucket dapat dibaca oleh publik
Agar semua objek dalam bucket dapat dibaca oleh semua orang di internet publik:
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.Kotak dialog Grant access 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 Save.
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
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
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 mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Terraform
Anda dapat menggunakan resource Terraform untuk menjadikan semua objek dalam bucket bersifat publik.
REST API
JSON API
Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header
Authorization
.Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di 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
.
Langkah selanjutnya
- Mengakses data yang telah disediakan untuk publik.
- Mempelajari opsi kontrol akses lainnya untuk bucket dan objek Anda.