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
函式可用來產生穩定的專用網址,以便提供適合在網路上使用的圖片縮圖。
您可以在 Blobstore 儲存原始圖片的單一複本,然後要求每張圖片的高效能網址,這些網址可以自動提供大小經調整及/或經裁剪的圖片。從這個網址提供圖片並不會在應用程式上產生 CPU 或動態服務負載 (但頻寬仍會照常計費)。
函式ˇ傳回的網址一律為公開,但無法猜測;目前尚未支援不公開的網址。如要停止提供網址,請使用 image.DeleteServingURL
函式將其刪除。
如果您將 image.ServingURLOptions
值傳送至函式,函式會傳回採用這些選項編碼的網址。如果您傳遞 nil
,函式會傳回圖片的預設網址,例如:
http://lhx.ggpht.com/randomStringImageId
您可以在網址中指定引數,以動態方式調整圖片大小及裁剪圖片。可用的引數為:
=sxx
,其中xx
為 0 到 2560 的整數,代表圖片最長邊的長度 (以像素為單位)。例如,加入=s32
可調整圖片大小,使其最長尺寸成為 32 像素。=sxx-c
,其中 xx 為 0 至 2560 的整數,代表裁剪後的圖片大小 (以像素為單位),而-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 刪除圖片,這樣可能會讓圖片仍可透過提供網址進行存取。
如果建立提供圖片網址的應用程式遭到停用或刪除,即便基礎圖片仍可使用,提供圖片的網址也會停止運作。