我這樣做節省了用戶的BlobProperty圖像:圖像響應
user.image = urlfetch.fetch(image_url).content
然後我使用的是URL,例如渲染圖像:
/image/user_id
圖像必須保存,因爲當我做len(user.image)時,我得到了數千個數字。在本地實例上,圖像呈現正常。在部署應用程序,我得到以下錯誤,當我去到圖像的URL沒有顯示在瀏覽器中:
Traceback (most recent call last): File "/base/python27_runtime/python27_dist/lib/python2.7/wsgiref/handlers.py", line 86, in run self.finish_response() File "/base/python27_runtime/python27_dist/lib/python2.7/wsgiref/handlers.py", line 127, in finish_response self.write(data) File "/base/python27_runtime/python27_dist/lib/python2.7/wsgiref/handlers.py", line 202, in write assert type(data) is StringType,"write() argument must be string" AssertionError: write() argument must be string
而且,這裏的服務於圖像處理程序:
class ImageHandler(webapp2.RequestHandler):
""" Returns image based on id. """
def get(self, *args, **kwargs):
user = db.get(
db.Key.from_path('User', models.User.get_key_name(kwargs.get('id'))))
if user.image:
self.response.headers['Content-Type'] = "image/jpeg"
self.response.out.write(user.image)
else:
self.response.out.write("No image")
只是爲了澄清我試圖將content-type設置爲jpeg和png。並且本地服務器上的工作正常。任何幫助,將不勝感激。謝謝!
user.image的屬性類型是什麼? – mjibson 2012-02-11 22:42:07
更好的方法是將urlfetch的數據存儲在blobstore中,並使用'images.get_serving_url()'。 – mjibson 2012-02-11 22:43:00
感謝您的提示。它是db.BlobProperty。 Blobstore將增加另一個級別的複雜性 - 這些是Twitter用戶的小型化身圖像。 – 2012-02-11 23:35:55