API Images per servizi in bundle legacy

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, dove xx è 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 -c indica 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.