Я пытаюсь загрузить изображение в blobstore и вернуть обслуживающий URL, вот где im на данный момент:
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-адрес служащего, чтобы сохранить его с другим объектом.
любая помощь приветствуется
спасибо J
Вы путаете две вещи.
db.Blob
- это тип db.Blob
хранящегося в модели. У него нет "обслуживающего URL". Если вы хотите его обслуживать, вам нужно написать код представления для загрузки экземпляра модели, который он хранит в хранилище данных, и напрямую вернуть данные blob.
Если вы хотите хранить капли и обслуживать их независимо от моделей хранилищ данных, вам необходимо использовать (экспериментальный) API blobstore.
В документации есть хорошая запись о том, как программно записывать файлы в blobstore. Затем вы можете передать это API изображений для получения URL-адреса:
from google.appengine.api import images
url = images.get_serving_url(blob_key)