Cloud Storage mendukung streaming data ke bucket tanpa mengharuskan data disimpan terlebih dahulu ke file. Fungsi ini berguna jika Anda ingin mengupload data, tetapi tidak mengetahui ukuran akhir pada saat upload dimulai, seperti ketika menghasilkan data upload dari proses tertentu, atau ketika mengompresi objek dengan cepat.
Menggunakan validasi checksum saat melakukan streaming
Karena checksum hanya dapat disediakan dalam permintaan awal upload, biasanya menjadi tidak mungkin untuk menggunakan validasi checksum Cloud Storage saat melakukan streaming. Sebaiknya selalu gunakan validasi checksum, dan Anda dapat melakukannya secara manual setelah upload streaming selesai; tetapi perlu diingat bahwa dengan melakukan validasi setelah transfer selesai, data yang rusak dapat diakses selama waktu yang diperlukan untuk mengonfirmasi kerusakan dan menghapusnya.
Jika memerlukan validasi checksum sebelum upload selesai dan data dapat diakses, sebaiknya Anda tidak menggunakan upload streaming. Sebaiknya gunakan opsi upload lain dengan validasi checksum yang dijalankan sebelum penyelesaian objek.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna melakukan streaming upload, minta administrator untuk memberi Anda salah satu peran berikut:
Untuk upload yang menyertakan Object Retention Lock, minta administrator untuk memberi Anda peran IAM Storage Object Admin (
roles/storage.objectAdmin
) untuk bucket.Untuk semua kasus lainnya, minta administrator untuk memberi Anda peran IAM Storage Object User (
roles/storage.objectUser
) untuk bucket.
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk melakukan streaming upload ke Cloud Storage. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
storage.objects.create
storage.objects.delete
- Izin ini hanya diperlukan untuk upload yang menimpa objek yang sudah ada.
storage.objects.list
- Izin ini hanya diperlukan untuk menggunakan Google Cloud CLI untuk menjalankan petunjuk di halaman ini.
storage.objects.setRetention
- Izin ini hanya diperlukan untuk upload yang menyertakan Kunci Retensi Objek.
Anda juga bisa mendapatkan izin ini dengan peran standar atau peran khusus lainnya.
Untuk informasi tentang cara memberikan peran pada bucket, lihat Menggunakan IAM dengan bucket.
Melakukan streaming upload
Contoh berikut menunjukkan cara melakukan upload streaming dari proses tertentu ke objek Cloud Storage:
Konsol
Konsol Google Cloud tidak mendukung upload streaming. Untuk itu, gunakan gcloud CLI.
Command line
Masukkan data ke perintah
gcloud storage cp
dan gunakan tanda hubung untuk URL sumber:PROCESS_NAME | gcloud storage cp - gs://BUCKET_NAME/OBJECT_NAME
Dengan keterangan:
PROCESS_NAME
adalah nama proses tempat Anda mengumpulkan data. Contohnya,collect_measurements
.BUCKET_NAME
adalah nama bucket tempat objek berada. Contoh,my_app_bucket
.OBJECT_NAME
adalah nama objek yang dibuat dari data. Contoh,data_measurements
.
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.
REST API
JSON API
Untuk melakukan upload streaming, gunakan salah satu metode berikut:
Upload yang dapat dilanjutkan, dengan penyesuaian berikut:
Saat mengupload data file, lakukan upload dalam beberapa potongan.
Karena total ukuran file baru dapat diketahui saat sampai ke potongan terakhir, gunakan
*
untuk total ukuran file di headerContent-Range
potongan menengah.Misalnya, jika potongan pertama yang Anda upload berukuran 512 KiB, header
Content-Range
untuk potongan tersebut adalahbytes 0-524287/*
. Jika upload tersisa 64.000 byte setelah potongan pertama, lanjutkan dengan mengirimkan potongan terakhir berisi byte yang tersisa dan memiliki headerContent-Range
dengan nilaibytes 524288-588287/588288
.
Upload satu permintaan, dengan penyesuaian berikut:
Sertakan header
Transfer-Encoding: chunked
, dan kecualikan headerContent-Length
.Buat permintaan sesuai dengan spesifikasi, yang mengirimkan data objek dalam potongan saat tersedia.
XML API
Untuk melakukan upload streaming, gunakan salah satu metode berikut:
Upload yang dapat dilanjutkan, dengan penyesuaian berikut:
Saat mengupload data file, lakukan upload dalam beberapa potongan.
Karena total ukuran file baru dapat diketahui saat sampai ke potongan terakhir, gunakan
*
untuk total ukuran file di headerContent-Range
potongan menengah.Misalnya, jika potongan pertama yang Anda upload berukuran 512 KiB, header
Content-Range
untuk potongan tersebut adalahbytes 0-524287/*
. Jika upload tersisa 64.000 byte setelah potongan pertama, lanjutkan dengan mengirimkan potongan terakhir berisi byte yang tersisa dan memiliki headerContent-Range
dengan nilaibytes 524288-588287/588288
.
Upload satu permintaan, dengan penyesuaian berikut:
Sertakan header
Transfer-Encoding: chunked
, dan kecualikan headerContent-Length
.Buat permintaan sesuai dengan spesifikasi, yang mengirimkan data objek dalam potongan saat tersedia.
Perhatikan bahwa Anda tidak dapat melakukan upload streaming menggunakan metode ini jika permintaan menggunakan tanda tangan di header
Authorization
-nya.
Langkah selanjutnya
- Streaming download.
- Pelajari lebih lanjut tentang transcoding dekompresi.
- Pelajari lebih lanjut tentang upload dan download.