0

我正在将我的网站转换为使用 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。但理想情况下,我想避免这种情况,因为我必须传递大量并行列表。

4

1 回答 1

3

为什么不返回服务网址而不是图像数据?

<img src="/show-image?key={{image_key}}" />

def get(self):
  imageInfo = db.get(self.request.args.get("key"))
  return imageInfo.saved_serving_url
于 2012-04-13T13:07:13.977 回答