appengine сохранить изображение в Blobstore из URL - PullRequest
1 голос
/ 14 августа 2011

Я пытаюсь загрузить изображение в Blobstore и вернуть URL-адрес для показа, вот где я сейчас:

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

1 Ответ

2 голосов
/ 14 августа 2011

Вы перепутали две вещи.

A db.Blob - это тип BLOB-объекта, хранящегося в модели. У него нет «обслуживающего URL». Если вы хотите обслуживать его, вам нужно написать код представления, чтобы загрузить экземпляр модели, в котором он хранится, из хранилища данных и вернуть данные BLOB-объектов напрямую.

Если вы хотите хранить большие двоичные объекты и обслуживать их независимо от моделей хранилища данных, вам необходимо использовать (экспериментальный) API-интерфейс BLOBSET .

В документации есть хорошая запись о том, как программно записывать файлы в хранилище . Затем вы можете передать это API images для получения URL:

from google.appengine.api import images
url = images.get_serving_url(blob_key)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...