Я пытаюсь написать небольшой инструмент для загрузки изображений из 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)
Полный Stacktrace:
Traceback (последний вызов был последним):
Файл "/home/birt/stuff/google/appengine/ext/webapp/init.py", строка 507, в вызов
handler.get (* группа)
Файл "/home/birt/stuff/app_picasaupload/main.py", строка 124, в get
Загрузить картинку (комментарий, картинка)
Файл "/home/birt/stuff/app_picasaupload/main.py", строка 104, в загружаемой картинке
entry = gd_client.InsertPhotoSimple (album_url, имя_файла, комментарий, рис., 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 (путь)
Файл "/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
if os.path.isdir (имя_файла):
Файл "/usr/lib/python2.5/posixpath.py", строка 195, в isdir
st = os.stat (путь)
TypeError: аргумент stat () 1 должен быть (кодированная строка без NULL-байтов), а не str
Есть идеи? : -)