我尝试通过 Google App Engine Sdk 将来自 Flex 应用程序的图像插入到 picasa 网络。我想做一个简单的 urlfetch 而不是 python 客户端库。我遵循的代码:
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
})
传递给“filename_or_handle”的数据是一个 ByteArray 图像。然而,它并不成功。我不知道问题是什么。请指教。谢谢。
解决方案如下:
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
})
谢谢,约翰逊。