以前のバンドル サービス用の Images API

Images API を使用すると、Google Cloud Storage または Blobstore の画像を直接処理し、すぐに操作することができます。image パッケージの内容については、image パッケージ リファレンスをご覧ください。

Cloud Storage バケットで、Images API が機能するためには、きめ細かいアクセス制御リストを使用する必要があります。均一なバケットレベルのアクセスが構成されているバケットの場合、Images API はバケット内の画像を取得できず、エラー メッセージ TransformationError をスローします。バケットがこのように構成されている場合は、均一なバケットレベルのアクセスを無効にすることができます。

画像形式

サービスでは、JPEG、PNG、WEBP、GIF(アニメーション GIF を含む)、BMP、TIFF、および ICO 形式の画像データを受け付けます。変換された画像は、JPEG、WEBP、PNG 形式で返すことができます。

入力形式と出力形式が異なる場合は、入力データを出力形式に変換してから、変換を実行します。

画像の配信とサイズ変更

image.ServingURL 関数を使用すると、安定した専用の URL を生成し、ウェブに適した画像のサムネイルを配信できます。

元の画像のコピーを Blobstore を保存すると、処理速度の速い URL をイメージごとに作成し、サイズ変更した画像や切り抜いた画像を自動的に配信できます。この URL から送信しても、CPU やアプリケーションの処理に動的な負荷がかかることはありません(帯域幅は通常どおり課金されます)。

関数から返される URL は常に公開 URL になりますが、簡単に類推できるものではありません。現在、非公開の URL はサポートされていません。URL の配信を停止する場合は、image.DeleteServingURL 関数を使用して URL を削除します。

image.ServingURLOptions 値を関数に渡すと、これらのオプションでエンコードされた URL が返されます。nil を渡すと、この関数は画像のデフォルト URL を返します。例:

http://lhx.ggpht.com/randomStringImageId

URL に引数を指定して、動的に画像のサイズを変更したり、切り抜いたりできます。使用できる引数は次のとおりです。

  • =sxx: ここで xx は、画像の長辺の長さをピクセル単位で表す 0~2,560 の整数です。たとえば、=s32 を追加すると、画像の長辺の寸法が 32 ピクセルになるように画像のサイズが変更されます。
  • =sxx-c: ここで xx は、切り抜かれた画像サイズをピクセル単位で表す 0~2,560 の整数です。-c はシステムに画像を切り抜くように指示します。
# 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

Blobstore API を使用した Cloud Storage からの画像配信

Cloud Storage をデータストアとして使用し、Blobstore API を使用して画像を提供する場合、Cloud Storage オブジェクト用の BLOB キーを作成する必要があります。

削除に関する注意事項

Cloud Storage または Blobstore に格納された画像の配信を停止するには、image.DeleteServingURL 関数を呼び出します。

Cloud Storage や Blobstore で画像を直接削除しないようにしてください。そうすることで、サービス URL からアクセスできるようにしておくことができます。

元になる画像がまだ存在する場合でも、それらを作成したアプリケーションが無効にされるか削除された場合、提供 URL は機能を停止します。