我正在將我的網站轉換爲使用blobstore進行圖像服務,並遇到問題。我有一個頁面,其中大量的圖片是動態渲染的(通過jinja),唯一可用的數據是指向包含相關服務url的圖片對象的實體關鍵字。從高性能blobstore服務的圖像無法直接訪問get_serving_url()
以前每幅圖像有沿"/show-image?key={{image_key}}"
線一個URL,它指向沿着該線的請求處理程序:
def get(self):
imageInfo = db.get(self.request.args.get("key"))
imagedata = imageInfo.data // the image is stored as a blob in the normal datastore
response = Response()
response.data = imagedata
response.headers['Content-Type'] = imageInfo.type
return response
我的問題是:如何修改這個讓,而不是返回在imageInfo.data
的響應中,我返回的響應爲imageInfo.saved_serving_url
(在創建圖像對象時從get_serving_url
生成)。更重要的是,這是一個好主意嗎?看起來像將saved_serving_url
轉換回數據(例如使用urllib.fetch
)可能只是抵消了首先使用高速數據存儲的速度和效率?
也許我應該重寫我的代碼,以便jinja模板可以直接訪問每個圖像的服務URL。但理想情況下,我想避免這種情況,因爲我必須傳遞大量的並行列表。
自己提取URL並返回內容將比直接提供blob更慢。將服務重定向到服務URL同樣會使您失去使用圖片服務API的所有好處。直接使用圖片提供網址是獲得API提供的改進的唯一途徑。 – 2012-04-18 00:34:05