API Images memberikan kemampuan untuk menyajikan gambar langsung dari
Cloud Storage atau
Blobstore, dan untuk memanipulasi gambar tersebut dengan cepat. Untuk melihat
isi paket image, lihat referensi paket image.
Bucket Cloud Storage harus menggunakan Daftar Kontrol Akses yang mendetail agar Images API dapat berfungsi. Untuk bucket yang telah dikonfigurasi untuk akses level bucket yang seragam, Images API tidak akan dapat mengambil gambar di bucket tersebut dan menampilkan pesan error TransformationError.
Jika bucket Anda dikonfigurasi dengan cara ini, Anda dapat
menonaktifkan akses level bucket yang seragam.
Saat Anda menyajikan gambar dari Cloud Storage, Images API menggunakan
akun layanan yang dikelola Google, dynamic_image_service@system.gserviceaccount.com,
untuk mengambil gambar. Biasanya, hal ini dilakukan untuk Anda, tetapi jika akun layanan ini tidak memiliki peran Storage Object Viewer di bucket, Anda mungkin mengalami error 403 Forbidden sesekali. Hal ini terjadi saat gambar tidak tersedia di cache penayangan Google dan perlu diambil dari bucket asal.
Untuk memberikan izin yang diperlukan, jalankan perintah gcloud berikut:
gcloud storage buckets add-iam-policy-binding gs://[BUCKET_NAME] \
--member=serviceAccount:dynamic_image_service@system.gserviceaccount.com \
--role=roles/storage.objectViewer
Format gambar
Layanan menerima data gambar dalam format JPEG, PNG, WEBP, GIF (termasuk GIF animasi), BMP, TIFF, dan ICO. Gambar yang diubah dapat ditampilkan dalam format JPEG, WEBP, dan PNG.
Jika format input dan format output berbeda, layanan akan mengonversi data input menjadi format output sebelum melakukan transformasi.
Menyajikan dan mengubah ukuran gambar
Fungsi image.ServingURL
memungkinkan Anda membuat URL khusus yang stabil untuk menyajikan thumbnail gambar
yang sesuai untuk web.
Anda dapat menyimpan satu salinan gambar asli di Blobstore, lalu meminta URL per gambar berperforma tinggi yang dapat menyajikan gambar yang diubah ukurannya dan/atau dipangkas secara otomatis. Penyajian dari URL ini tidak akan menimbulkan beban penyajian dinamis atau CPU apa pun pada aplikasi Anda (meskipun bandwidth masih dikenakan biaya seperti biasa).
URL yang ditampilkan oleh fungsi selalu bersifat publik, tetapi tidak dapat ditebak; URL
pribadi saat ini tidak didukung. Jika Anda ingin berhenti menyajikan URL, hapus
URL tersebut menggunakan
fungsi image.DeleteServingURL.
Jika Anda meneruskan
nilai image.ServingURLOptions
ke fungsi, nilai tersebut menampilkan URL yang dienkode dengan opsi tersebut. Jika Anda meneruskan
nil, fungsi menampilkan URL default untuk gambar, misalnya:
http://lhx.ggpht.com/randomStringImageId
Anda dapat mengubah ukuran dan memangkas gambar secara dinamis dengan menentukan argumen dalam URL. Argumen yang tersedia adalah:
=sxxdi manaxxadalah bilangan bulat dengan rentang dari 0–2560 yang mewakili panjang sisi terpanjang gambar, dalam piksel. Misalnya, menambahkan=s32akan mengubah ukuran gambar sehingga dimensi terpanjangnya adalah 32 piksel.=sxx-cdi mana xx adalah bilangan bulat dengan rentang dari 0–2560 yang merepresentasikan ukuran gambar yang dipangkas dalam piksel, dan-cakan memberi tahu sistem untuk memangkas gambar.
# Resize the image to 32 pixels (aspect-ratio preserved) http://lhx.ggpht.com/randomStringImageId=s32 # Crop the image to 32 pixels http://lhx.ggpht.com/randomStringImageId=s32-c
Menyajikan gambar dari Cloud Storage menggunakan API Blobstore
Jika menggunakan Cloud Storage sebagai penyimpanan data dan menyajikan gambar menggunakan API Blobstore, Anda harus membuat kunci blob untuk objek Cloud Storage.
Catatan tentang penghapusan
Untuk berhenti menyajikan gambar yang disimpan di Cloud Storage atau Blobstore, panggil metode
image.DeleteServingURL.
Fungsi
Hindari menghapus gambar secara langsung di Cloud Storage atau Blobstore karena hal ini dapat membuat gambar tetap dapat diakses melalui URL penayangan.
URL penayangan akan berhenti berfungsi jika aplikasi yang membuatnya dinonaktifkan atau dihapus, meskipun gambar yang mendasarinya tetap tersedia.