2009-04-14 58 views
0

實體我工作的谷歌的App Engine應用程序相關聯,並已經開始在這裏我想對文件系統映像數據庫中的實體關聯的點。我怎樣才能映像中的谷歌應用程序引擎

我使用bulkupload_client.py腳本上傳實體數據庫,但我堅持試圖找出如何文件系統的文件關聯到的實體。如果實體具有以下圖片:主,細節,前面,後面我想可能希望這樣的命名方案:<entity_key> _main.jpg

我想我可以爲每個實體和使用創建一個GUID是,但我寧願不必這樣做。

任何想法?

我想我不能使用實體按鍵,因爲它可能是本地生產數據存儲之間的不同,所以我會後一生產bulkupload我的所有圖像重命名。

回答

0

我在這裏看到兩個選項基於我很有限GAE的知識。

首先,你不能真正在GAE寫入任何文件系統,對不對?這將意味着要包括任何圖片都必須上傳爲你的web應用的一部分,因此將有一個靜態的名稱和目錄結構是已知的和不可改變的。在這種情況下,您對_main.jpg或OR /entity_key/main.jpg的想法可以正常工作。

的第二個選擇是將圖像存儲在數據庫中的一個斑點。這可能會允許上傳圖片動態而不是在每次需要更新圖片同時上傳web應用程序的新版本。它會很快進入你的免費數據庫空間。以下是關於從數據庫中提供圖片的一些信息。 http://code.google.com/appengine/articles/images.html

+0

是的,當我部署的項目,我會上傳圖片。我想我不能使用實體按鍵,因爲當我bulkupload到我的dev的數據存儲和數據存儲產品可能會有所不同。 – MStodd 2009-04-14 19:38:30

0

如果你上傳的靜態圖像,你可以使用基於密鑰的方案,如果你想:只需一鍵名分配給實體,並用它來尋找相關的圖片。您指定的鍵名(在Python版本)作爲KEY_NAME構造參數實體類:

myentity = EntityClass(key_name="bleh", foo="bar", bar=123) 
myentity.put() 

,你可以拿到鑰匙名實體,像這樣:

myentity.key().name() 

這聽起來像有問題的數據存儲區實體基本上都是靜態的內容,雖然如此,也許你會更好,只是編碼它們在源文字,從而讓他們在內存中,或在本地數據文件運行時加載它們,繞過無需查詢數據存儲爲他們?