L'API Images permet de diffuser des images directement à partir de Google Cloud Storage ou de Blobstore, et de manipuler ces images à la volée. Pour afficher le contenu du package image
, consultez la documentation de référence sur le package image
.
Les buckets Cloud Storage doivent utiliser des listes de contrôle d'accès précises pour que l'API Images fonctionne. Pour les buckets configurés pour un accès uniforme au niveau du bucket, l'API Images ne peut pas récupérer les images qu'ils contiennent et génère le message d'erreur TransformationError
. Si votre bucket est configuré de cette manière, vous pouvez désactiver l'accès uniforme au niveau du bucket.
Formats d'image
Le service accepte les données d'image aux formats JPEG, PNG, WEBP, GIF (y compris GIF animé), BMP, TIFF et ICO. Les images transformées peuvent être renvoyées aux formats JPEG, WEBP et PNG.
Si les formats d'entrée et de sortie sont différents, le service convertit les données d'entrée vers le format de sortie avant de procéder à la transformation.
Diffuser et redimensionner des images
La fonction image.ServingURL
vous permet de générer une URL stable et dédiée pour diffuser des vignettes d'images adaptées au Web.
Vous pouvez stocker une seule copie de l'image d'origine dans Blobstore, puis demander une URL d'image hautes performances pouvant diffuser l'image redimensionnée et/ou recadrée automatiquement. La diffusion à partir de cette URL n'engendre aucune charge de processeur ou de diffusion dynamique sur l'application (bien que l'utilisation de la bande passante soit toujours facturée comme d'habitude).
L'URL renvoyée par la fonction est toujours publique, mais non devinable. Les URL privées ne sont pas disponibles actuellement. Si vous souhaitez cesser de diffuser l'URL, supprimez-la à l'aide de la fonction image.DeleteServingURL
.
Si vous transmettez une valeur image.ServingURLOptions
à la fonction, elle renvoie une URL encodée avec ces options. Si vous transmettez nil
, la fonction renvoie l'URL par défaut de l'image, par exemple :
http://lhx.ggpht.com/randomStringImageId
Vous pouvez redimensionner et recadrer l'image de manière dynamique en spécifiant les arguments dans l'URL. Les arguments disponibles sont les suivants :
=sxx
, oùxx
est un entier compris entre 0 et 2 560, qui représente la longueur, en pixels, du côté le plus long de l'image. Par exemple, ajouter=s32
entraîne le redimensionnement de l'image afin que sa plus grande dimension soit de 32 pixels.=sxx-c
, où xx est un entier compris entre 0 et 2 560, qui représente la taille de l'image recadrée, en pixels, et où-c
indique au système de recadrer l'image.
# 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
Diffuser des images à partir de Cloud Storage à l'aide de l'API Blobstore
Si vous utilisez Cloud Storage en tant que datastore et que vous diffusez des images à l'aide de l'API Blobstore, vous devez créer une clé de blob pour l'objet Cloud Storage.
Remarque sur la suppression
Pour arrêter de diffuser une image stockée dans Cloud Storage ou le blobstore, appelez la fonction image.DeleteServingURL
.
Vous devez éviter de supprimer directement des images dans Cloud Storage ou Blobstore, car cela pourrait les rendre accessibles via l'URL de diffusion.
La diffusion des URL cesse si l'application qui les a créées est désactivée ou supprimée, même si l'image sous-jacente reste disponible.