Как использовать Blobstore для сохранения веб -изображений Google App Engine
-
14-10-2019 - |
Вопрос
ОБНОВИТЬ
Этот вопрос был первоначально задан в то время, когда не было поддержки для создания программного файла (например, через URL). Это изменилось, см.: http://code.google.com/appengine/docs/java/blobstore/overview.html#writing_files_to_the_blobstore
Я получаю доступ к паре различных API для получения изображений. Мое приложение - Gae + Python, и я хочу использовать Blobstore, чтобы сохранить эти изображения. Документация Gae Blobstore содержит четкие примеры того, как сохранить изображения в Blobstore через форму, но не непосредственно из URL.
Я хочу знать, как сэкономить http://api.website.com/images/foo.jpg в брус.
Решение
Используя новый API файла в сочетании с API URLFetch, вы должны иметь возможность передать URL-адрес изображения через форму, получить его на стороне сервера и записать его в Blobstore:
Другие советы
Http post в вашу собственную форму работает. Я не пытался отправить файл, но вот как я отправляю форму. Вы можете получить файл из Интернета, добавить его в представление формы, и файл будет храниться в вашем Blobstore.
import urllib
data = urllib.urlencode({"id":str(id), "password" : self.request.POST['passwd'], "edit" : "edit"})
result = urlfetch.fetch(url="http://www.montao.com.br/upload",
payload=data,
method=urlfetch.POST,
headers={'Content-Type': 'application/x-www-form-urlencoded'})
Также есть аналогичный вопрос здесь
Я надеюсь, что это сработает для вас.
Вы можете написать дополнительный обработчик, чтобы загрузить содержимое URL -адреса ввода в обработчик хранилища Blob. т.е. автоматизация процесса подачи формы. сделать POST
Запрос в обработчик магазина Blob и URL кодировать изображение.
Но единственная проблема была бы, если файл слишком большой, то вы можете получить исключения тайм -аута.