您好,leancloud团队,今天发现在python环境中保存File文件时出现错误,直接登录数据库后台可以上传图片文件,但无论是在云引擎下使用或是使用python-sdk直接保存文件都出现以下错误信息:
File "/usr/local/lib/python2.7/dist-packages/leancloud/object_.py", line 215, in save
self.deepsave(unsaved_children, unsaved_files, exclude=self._attributes)
File "/usr/local/lib/python2.7/dist-packages/leancloud/object_.py", line 239, in deepsave
f.save()
File "/usr/local/lib/python2.7/dist-packages/leancloud/file_.py", line 274, in save
self.saveto_qiniu()
File "/usr/local/lib/python2.7/dist-packages/leancloud/file_.py", line 167, in saveto_qiniu
uptoken = content['token']
KeyError: 'token'
查看后台文件数据内容发现现在保存文件时是转到亚马逊(amazonaws)平台,之前文件都是上传到七牛(clouddn)平台,想知道是否于此有关。
想请问这个问题应该如何解决?因为sdk上的file_.py文件仍然使用qiniu,而导致其上传文件的功能受限,另外,是否上传到亚马逊后,数据存储本身的缩略图(原先sdk中使用七牛的直接转化参数)功能就不可再使用了。
希望leancloud团队能解答我的疑惑,谢谢。

我自问自答一下吧:刚刚去查了下源代码,看来是需要在一开始增加leancloud.use_region('US'),才会上传成功。也是自己没注意,因为之前使用leancloud.use_region('US')成功deploy到云引擎的原因,所以在开始增加了对本地环境的判断使用。解决办法在wsgi.py直接增加leancloud.use_region('US')即可。
现在问题只剩一个,即是使用上传到亚马逊后的图片文件是否已经不能使用缩略图的功能了?即在网址后增加转化参数?imageView/2/w/154/h/96/q/100/format/png实现

你好,美国区确实需要增加 leancloud.use_region('US'),文档因为在重构,所以还没有发布,抱歉。

AWS S3 是没有缩略图 API 的,需要你自行在客户端处理。