API Images para serviços agrupados legados

A API Images permite disponibilizar imagens diretamente do Google Cloud Storage ou do Blobstore e manipulá-las imediatamente. Para ver o conteúdo do pacote image, consulte as referências do pacote image.

Os buckets do Cloud Storage precisam usar listas de controle de acesso detalhadas para que a API Images funcione. Nos buckets configurados com acesso uniforme no nível do bucket, a API Images não vai conseguir buscar imagens nesse bucket e vai gerar a mensagem de erro TransformationError. Se o bucket estiver configurado dessa maneira, é possível desativar o acesso uniforme no nível do bucket.

Formatos de imagem

O serviço aceita dados de imagem nos formatos JPEG, PNG, WEBP, GIF (inclusive GIF animado), BMP, TIFF e ICO. As imagens transformadas podem ser retornadas nos formatos JPEG, WEBP e PNG.

Se os formatos de entrada e de saída forem diferentes, o serviço converterá os dados de entrada para o formato de saída antes de realizar a transformação.

Como disponibilizar e redimensionar imagens

A função image.ServingURL permite gerar um URL estável e dedicado para exibir miniaturas de imagens adequadas para a Web.

Você pode armazenar uma única cópia da imagem original no Blobstore e, em seguida, solicitar um URL de alto desempenho por imagem que possa disponibilizar a imagem redimensionada e/ou recortada automaticamente. A disponibilização por esse URL não incorre em nenhuma carga de CPU ou de disponibilização dinâmica no aplicativo, embora a largura de banda ainda seja cobrada como de costume.

O URL retornado pela função é sempre público, mas não pode ser adivinhado. Os URLs particulares não têm suporte no momento. Para parar de exibir o URL, exclua-o usando a função image.DeleteServingURL.

Se você transmitir um valor image.ServingURLOptions para a função, ele retornará um URL codificado com essas opções. Se você transmitir nil, a função retornará o URL padrão para a imagem. Por exemplo:

http://lhx.ggpht.com/randomStringImageId

É possível redimensionar e cortar a imagem dinamicamente. Basta especificar os argumentos no URL. Os argumentos disponíveis são:

  • =sxx, em que xx é um número inteiro de 0 a 2.560 que representa o comprimento, em pixels, do lado maior da imagem. Por exemplo, adicionar =s32 redimensiona a imagem de modo que a dimensão maior tenha 32 pixels.
  • =sxx-c, em que xx é um número inteiro de 0 a 2.560 que representa o tamanho da imagem recortada em pixels, e -c informa ao sistema para recortar a imagem.
# 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

Como disponibilizar imagens do Cloud Storage usando a API Blobstore

Se você usa o Cloud Storage como repositório de dados e disponibiliza as imagens usando a API Blobstore, é necessário criar uma chave blob para o objeto do Cloud Storage.

Uma observação sobre exclusão

Para deixar de exibir uma imagem armazenada no Cloud Storage ou no Blobstore, chame a função image.DeleteServingURL.

Você deve evitar excluir diretamente as imagens no Cloud Storage ou no Blobstore, porque isso pode deixá-las acessíveis por meio do URL de disponibilização.

Os URLs exibidos deixarão de funcionar se o aplicativo que os criou for desativado ou excluído, mesmo se a imagem subjacente permanecer disponível.