我有一個應用程序允許用戶在blobstore中保存斑點。我現在有一個模式,但我對更簡單,扭曲更少的東西感興趣。在上下文中,想象一下,我的應用允許用戶上傳動物圖片,其中描述了動物正在做什麼。用Google Endpoint保存斑點
當前模式
用戶叫我端點API來保存動物的
paragraph
和name
在實體Animal
。 注意:Animal
實體實際上有4個字段(name
,paragraph
,BlobKey
和blobServingUrl
作爲字符串)。但是端點API只允許保存上述兩個。在端點法,在App引擎側,節約
name
和paragraph
後,我提出以下調用生成一個blob服務的URL,這我的終點方法返回給調用者@ApiMethod(NAME = 「saveAnimalData」,httpMethod = HttpMethod.POST) public String saveAnimalData(AnimalData request)throws Exception { ... BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService(); String url = blobstoreService.createUploadUrl(「/ upload」); 返回網址; }
在android方面,我使用普通的http調用將圖像的byte []發送到blobstore。我使用apache
DefaultHttpClient()
。 注: Blob存儲區中,保存圖像後,叫我用blob鍵的應用程序引擎服務器和服務網址我讀從Blob存儲的響應(Blob存儲區叫我的回調URL)使用普通的Java Servlet,即
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
。從servlet中,我將BlobKey
和blobServingUrl
放入相關動物的Animal
實體中。 (我已經將一些元數據傳遞給blobstore,我用它作爲標記來識別相關的動物實體)。
需要的模式
這是你的迴應用武之地必要,我想消除了Java Servlet,並有我的整個API僅限於谷歌的雲終端。所以我的問題是:我將如何使用我的端點執行步驟3和4?
所以我的想法是在我發送paragraph
和name
數據的同時將圖像字節發送到端點方法saveAnimalData
。然後在端點方法中,將圖像發送到blobstore,然後將BlobKey
和blobServingUrl
保留在我的實體Animal
中。
您的回答必須在java中。謝謝。
嘿!我使用與您相同的流程,但我有一個問題。在我的success_path servlet中,方法getUploads(req)返回一個空對象..所以我沒有任何blobket或blobServingUrl。你知道怎麼回事?謝謝 – FlavienBert