L'API Images offre la possibilità di pubblicare immagini direttamente da
Cloud Storage o
Blobstore e di manipolare queste immagini al volo. Per visualizzare
i contenuti del pacchetto image, consulta il riferimento al pacchetto.image
Per funzionare, i bucket Cloud Storage devono utilizzare elenchi di controllo dell'accesso granulari per l'API Images. Per i bucket configurati per l'accesso uniforme a livello di bucket, l'API Images non sarà in grado di recuperare le immagini in quel bucket e restituirà il messaggio di errore TransformationError.
Se il bucket è configurato in questo modo, puoi disattivare l'accesso uniforme a livello di bucket.
Quando fornisci immagini da Cloud Storage, l'API Images utilizza un service account gestito da Google, dynamic_image_service@system.gserviceaccount.com, per recuperare l'immagine. Questa operazione viene eseguita normalmente per te, ma se questo service account
non dispone del ruolo Storage Object Viewer nel bucket, potresti riscontrare
errori 403 Forbidden intermittenti. Ciò si verifica quando l'immagine non è
disponibile nella cache di pubblicazione di Google e deve essere recuperata dal bucket di origine.
Per concedere l'autorizzazione richiesta, esegui questo comando gcloud:
gcloud storage buckets add-iam-policy-binding gs://[BUCKET_NAME] \
--member=serviceAccount:dynamic_image_service@system.gserviceaccount.com \
--role=roles/storage.objectViewer
Formati immagine
Il servizio accetta dati immagine nei formati JPEG, PNG, WEBP, GIF (inclusi GIF animate), BMP, TIFF e ICO. Le immagini trasformate possono essere restituite nei formati JPEG, WEBP e PNG.
Se il formato di input e il formato di output sono diversi, il servizio converte i dati di input nel formato di output prima di eseguire la trasformazione.
Pubblicazione e ridimensionamento delle immagini
La funzione image.ServingURL
consente di generare un URL stabile e dedicato per la pubblicazione di miniature di immagini
adatte al web.
Puoi archiviare una singola copia dell'immagine originale in Blobstore, quindi richiedere un URL per immagine ad alte prestazioni che possa pubblicare l'immagine ridimensionata e/o ritagliata automaticamente. La pubblicazione da questo URL non comporta alcun carico di CPU o pubblicazione dinamica sulla tua applicazione (anche se la larghezza di banda viene comunque addebitata come di consueto).
L'URL restituito dalla funzione è sempre pubblico, ma non intuibile; gli URL privati
non sono attualmente supportati. Se vuoi interrompere la pubblicazione dell'URL, eliminalo
utilizzando la funzione
image.DeleteServingURL.
Se passi un valore
image.ServingURLOptions
alla funzione, questa restituisce un URL codificato con queste opzioni. Se passi
nil, la funzione restituisce l'URL predefinito per l'immagine, ad esempio:
http://lhx.ggpht.com/randomStringImageId
Puoi ridimensionare e ritagliare l'immagine in modo dinamico specificando gli argomenti nell'URL. Gli argomenti disponibili sono:
=sxx, dovexxè un numero intero compreso tra 0 e 2560 che rappresenta la lunghezza, in pixel, del lato più lungo dell'immagine. Ad esempio, se aggiungi=s32, l'immagine viene ridimensionata in modo che la dimensione più lunga sia di 32 pixel.=sxx-c, dove xx è un numero intero compreso tra 0 e 2560 che rappresenta le dimensioni dell'immagine ritagliata in pixel e-cindica al sistema di ritagliare l'immagine.
# 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
Pubblicazione di immagini da Cloud Storage utilizzando l'API Blobstore
Se utilizzi Cloud Storage come datastore e pubblichi le immagini utilizzando l'API Blobstore, devi creare una chiave blob per l'oggetto Cloud Storage.
Una nota sull'eliminazione
Per interrompere la pubblicazione di un'immagine archiviata in Cloud Storage o Blobstore, chiama il metodo
Funzione image.DeleteServingURL.
Ti consigliamo di evitare di eliminare direttamente le immagini in Cloud Storage o Blobstore, in quanto in questo modo potrebbero rimanere accessibili tramite l'URL di pubblicazione.
Gli URL di pubblicazione smetteranno di funzionare se l'applicazione che li ha creati viene disattivata o eliminata, anche se l'immagine sottostante rimane disponibile.