Google App Engine (GAE) 和静态文件最佳实践
我正在尝试创建一个类似Instagram的应用程序,并且我正在学习Google App Engine(GAE),所以我想用它来开发整个应用。
我遇到的问题是,给用户提供图片会消耗很多流量,而我不想这样,因为谷歌会因此收费。
我的问题是:在GAE中处理图片有哪些最佳实践?
我第一个想法是把所有静态文件,比如CSS、PNG、JPG等,放在另一个服务器上,只在GAE上处理逻辑部分。
这样的话,如果将来需要,我可以迁移到亚马逊或者其他地方,因为逻辑部分在GAE上应该能很好地扩展(前提是编写得当 :))。
如果有链接或建议,那就太好了!
谢谢!
2 个回答
试试Google Picasa的API。之前我也在找类似问题的答案,这个方法挺不错的。
有人会向你收费来传送你的内容,这可能是通过谷歌的AppEngine,或者亚马逊的S3、CloudFront,或者其他服务。你可能需要做一个电子表格,把不同的数字放进去,这样就能看到不同选择在不同使用量下的表现。
亚马逊CloudFront是一个很不错的选择,适合便宜地传送静态内容。
在设计你的应用时,你最需要担心的就是确保在需要更换内容传送源的时候,你的工作量要尽量少。
就我个人而言,我会创建一个自定义Django标签,用来生成<img>
标签;像这样:
{% staticimg sunset %}
这段代码会生成看起来像这样的HTML:
<img src='http://instagram.appspot.com/image/serve/sunset.jpg'>
当我需要切换到新的服务提供商,比如说cheapo-cdn.com时,我只需要更改自定义标签的代码,然后重新部署我的应用,其他地方不需要改动。这样一来,生成的HTML就会变成:
<img src='http://cheapo-cdn.com/image/serve/sunset.jpg'>