我正在将我的网站转换为使用 blobstore 进行图像服务,但遇到了问题。我有一个页面,其中包含大量动态呈现的图像(通过 jinja),唯一可用的数据是指向包含相关服务 url 的图像对象的实体键。
以前每个图像都有一个 url "/show-image?key={{image_key}}"
,它指向一个请求处理程序,如下所示:
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。但理想情况下,我想避免这种情况,因为我必须传递大量并行列表。