Я пытаюсь написать небольшой инструмент для загрузки изображений из Google App Engine в Picasa. Получение изображения работает, но когда я пытаюсь загрузить его, я получаю сообщение об ошибке "TypeError: stat() аргумент 1 должен быть (закодированная строка без NULL байтов), а не str"
Код в основном выглядит так:
def getfile(url):
result = urlfetch.fetch(url)
if result.status_code == 200:
return (result.content)
logging.error ("[-] Error fetching URL: %s" % url)
def uploadpicture(comment,pic):
album_url = '/data/feed/api/user/%s/album/%s' % (username, album)
fname = "image.jpg"
entry = gd_client.InsertPhotoSimple(album_url, fname, comment, pic, content_type='image/jpeg')
picurl = "http://brilliantleap.com/blog/frog.jpg"
pic = getfile(picurl)
comment = "Test"
uploadpicture(comment, pic)
Полная трассировка стека:
Traceback (последний последний вызов):
Файл "/home/birt/stuff/google/appengine/ext/webapp/init.py", строка 507, в call handler.get(*groups)
Файл "/home/birt/stuff/app_picasaupload/main.py", строка 124, в get uploadpicture(comment, pic)
Файл "/home/birt/stuff/app_picasaupload/main.py", строка 104, в записи uploadpicture = gd_client.InsertPhotoSimple(album_url, fname, comment, pic, content_type='image/jpeg')
Файл "/home/birt/stuff/app_picasaupload/gdata/photos/service.py", строка 469, в InsertPhotoSimple content_type)
Файл "/home/birt/stuff/app_picasaupload/gdata/photos/service.py", строка 398, в InsertPhoto os.path.exists(filename_or_handle): # это имя файла
Файл "/usr/lib/python2.5/posixpath.py", строка 171, существует st = os.stat(path)
Файл "/home/birt/stuff/google/appengine/tools/dev_appserver.py", строка 1109, в вызове, если не FakeFile.IsFileAccessible(путь):
Файл "/home/birt/stuff/google/appengine/tools/dev_appserver.py", строка 1018, в IsFileAccessible normcase=normcase)
Файл "/home/birt/stuff/google/appengine/tools/dev_appserver.py", строка 1036, в _IsFileAccessibleNoCache, если os.path.isdir(logical_filename):
Файл "/usr/lib/python2.5/posixpath.py", строка 195, в isdir st = os.stat(путь)
TypeError: stat() аргумент 1 должен быть (закодированная строка без байтов NULL), а не str
Любые идеи ? :-)