2011-08-13 27 views
1

我試着將圖像上傳到Blob存儲和返回服務的URL,這就是IM在迄今:AppEngine上保存的圖像從網址到BLOBSTORE

url ='http://ws.audioscrobbler.com/2.0/?method=track.getinfo&api_key=b25b959554ed76058ac220b7b2e0a026&artist=blink-182&track=dammit&format=json' 
result = urlfetch.fetch(url=url, deadline=10, method=urlfetch.GET,).content 

    if result: 
     data = json.loads(result) 
     imageUrl = data['track']['album']['image'][3]['#text'] 


     result = urlfetch.fetch(imageUrl) 
     if result.status_code == 200: 
      image_result = db.Blob(result.content) 

我需要返回斑點服務URL,這樣我可以用另一個實體保存它。

任何幫助表示讚賞

感謝 Ĵ

回答

2

你已經糊塗了兩件事情。

A db.Blob是存儲在模型中的斑點的類型。它沒有「投放網址」。如果您想爲其提供服務,則需要編寫視圖代碼以從數據存儲中加載其存儲的模型實例,並直接返回blob數據。

如果要存儲blob並獨立於數據存儲模型提供它們,則需要使用(實驗性)blobstore API

該文檔對如何以編程方式編寫write files to the blobstore做了很好的說明。然後,您可以將其傳遞給images API以獲取網址:

from google.appengine.api import images 
url = images.get_serving_url(blob_key)