Insertar imagen en Picasa en Python Google App Engine Sdk a través de urlfetch

Intento insertar una imagen de una aplicación Flex en la web de picasa a través de Google App Engine Sdk. Quiero hacer un urlfetch simple en lugar de la biblioteca del cliente de Python. El código i siguiente:

def Insert(self, sessionToken, album_or_uri, title, filename_or_handle): result = urlfetch.fetch(url=album_or_uri, method=urlfetch.POST, follow_redirects=True, payload=StringIO(filename_or_handle), headers={'Authorization': 'AuthSub token="' + sessionToken + '"', 'Content-Length': str(len(filename_or_handle)), 'Content-Type': 'image/jpeg', 'Slug': title }) 

El paso de datos a “filename_or_handle” es una imagen de ByteArray. Sin embargo, no tiene éxito. no tengo idea cual es el problema. Por favor aconséjame. Gracias.

La solución es la siguiente:

 def Insert(self, sessionToken, album_or_uri, title, filename_or_handle): image = filename_or_handle.read() contentLength = len(image) result = urlfetch.fetch(url=album_or_uri, method=urlfetch.POST, follow_redirects=True, payload=image, headers={'Authorization': 'AuthSub token="' + sessionToken + '"', 'Content-Length': contentLength, 'Content-Type': 'image/jpeg', 'Slug': title }) 

Gracias, Johnson.

La carga útil debe ser una cadena, no un objeto similar a un archivo. La forma en que se debe codificar depende de la API a la que llama: consulte la documentación para que la API determine eso, y cualquier otro encabezado, etc., que deba configurar. Es improbable que necesites codificarlo en base64, solo pasa el contenido de la imagen directamente.

Si aún tiene problemas, debe ser más específico que “no tiene éxito”. ¿Qué respuesta obtiene?