通过httpresponse提供blobstore请求的成本

时间:2011-11-25 09:50:32

标签: google-app-engine blobstore

我的问题很简单。

通过httpresponse提供blobstore请求的成本是多少。 现在我通过将图像上传到blobstore并创建imageServingLink()并使用该链接向用户提供图像来提供图像。这仅花费带宽而不是实例时间,但尺寸限制为1600像素。

所以我希望通过httpresponse提供我的图像。

通过httpresponse服务也会花费我的附加配额,例如实例时间(用户下载图片的长度)或仅限带宽。

我知道我已经阅读了某个地方,它只花费了带宽,但在blobstore文档中并不清楚!

第二个问题:

blobstore httpresponse是否比通过缩略图服务更快或更慢地服务?

或者是否可以采用另一种方法来尽可能便宜地提供我的图像而不会放弃太多的速度和/或像素。

我期待着回应。

== EDIT ==

这部分对我来说并不完全清楚:

  

静态内容服务(Java,Python)由专门的App处理   引擎基础结构,不消耗实例小时数。如果   您需要设置自定义标头,使用Blobstore API(Java,Python,   走)。实际提供的Blob响应不会消耗实例   小时。

那么blobstore现在是否使用实例来提供响应?

blobstore中的静态和动态文件之间的区别是什么?blobstore如何知道?

顺便说一句。我的大部分图片上传量都会超过1600像素。

2 个答案:

答案 0 :(得分:4)

对Images API生成的URL的请求不会消耗实例小时数,因为它们不需要运行应用程序代码。 App Engine基础架构可以为您的用户提供图像,而无需联系您的应用程序,因此不会消耗实例时间。

假设您正在讨论使用已记录here的blob - 即设置适当的blobstore标头并让App Engine基础结构返回blob响应 - 唯一的额外成本是处理程序消耗的实例时间,以及用户将遇到的额外延迟。

答案 1 :(得分:2)

imageServingLink() / get_serving_url()投放的图片来自专门用于快速图片投放的专用Google硬件,您只需为带宽付费。

如果您需要从应用程序中提供图像,那么当然除了带宽之外,您还需要支付一些实例时间,而且速度会慢一些。此实例时间用于执行代码,直到从请求处理程序返回为止,客户端实际下载数据时不会占用实例时间。

但是,如果您只是受到1600像素限制的困扰,您可以添加一个小型请求处理程序,专门为1600像素及以上的图像提供服务,并继续使用imageServingLink()。我不知道你的用例,但通常高分辨率的图像只是服务的所有图像的一小部分。