2012-02-27 70 views
2

如果我要使用Google App Engine製作項目(使用Python),並且此項目包含小用戶生成的圖像(一旦上傳,將會被訪問很多,但不會再動態更改或更改) ,谷歌應用程序引擎BlobStore會使用(在成本,速度等方面)嗎?或者GAE或客戶端連接到Amazon S3並在那裏存儲圖像更有意義,因爲這些文件最終會變成靜態的?Google App Engine BlobStore作爲圖像主機?

對於什麼是值得的,生成的圖像文件都被認爲是公共的,而不是用戶私有的,並且他們將在另一個子域上是完全正確的。所有文件都是固定調色板,16個顏色的PNG完全爲19x19像素。他們的URL/ID將在GAE數據存儲中引用,並具有更多屬性(如creatorId),用於在Web應用程序中處理/顯示它們。

謝謝!

回答

1

幾天前我問了一個similar question。 我堅持將圖像作爲BLOBS(不在BlobStore中)存儲在DataStore中,並確保我設置了Cache Control標頭,以確保它們不會被請求過多次。

1

對於這樣的小圖像,您可以簡單地使用數據存儲。即使使用1Gb的空間,它也可以讓您在免費配額中輕鬆存儲幾張19x19像素的圖像。使用BlobStore稍微複雜一點,因爲API更加複雜,實際的sotorage過程涉及的步驟多於將二進制數據存儲在DataStore中的步驟。不過,我建議你實現memCache來檢索這些圖像,因爲你認爲之後不會被修改。您不希望一遍又一遍地查詢數據庫中相同的19 * 19 * 4字節。

8

如果您關心速度和成本,目前最好的方法是將它們存儲在blobstore中並使用get_serving_url()link)。這些圖像由谷歌的高性能圖像服務器提供,並且永遠不會花費您的實例小時數,僅僅是帶寬,並且您不必擔心memcache。

+0

非常感謝Mj! – 2012-02-27 21:55:53