新建的应用:云引擎python环境,上传图片报错!

问题描述:
本地调试环境(leancloud-sdk (1.13.0)),能够成功上传图片。
把代码上传到线上后,就会报错。
旧的应用没有这个问题。
目前不知道如何解决,希望能帮助一下我,谢谢!

补充:
新创建应用,等了几分钟后,在控制台_File表的顶部按钮栏,点击最后一个按钮【上传】,提示如下:

App is being initialized, please wait a moment. [400 POST /1.1/fileTokens]

然后等待30分钟之后,再此上传文件,文件上传成功!
但是,部署云引擎代码,仍然是不能在保存图片,仍然是提示这样的错误。
注:我是在文件上传成功之后,才部署云引擎代码的。

APPID: am9D52ild1Ubao30cpa0OEXy-gzGzoHsz

代码如下:

url = 'https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png'
_file = File('baidu22', StringIO.StringIO(urllib2.urlopen(url).read()))
_file.save()

报错如下:

File "/opt/pyenv/versions/2.7.11/lib/python2.7/site-packages/leancloud/file_.py", line 244, in save
self._save_to_qiniu(content['token'], content['key'])
File "/opt/pyenv/versions/2.7.11/lib/python2.7/site-packages/leancloud/file_.py", line 174, in _save_to_qiniu
raise LeanCloudError(1, 'the file is not saved, qiniu status code: {0}'.format(info.status_code))
LeanCloudError: LeanCloudError: [1] the file is not saved, qiniu status code: 406

重试也是这样吗?另外能不能贴一下七牛 SDK 的版本?

另外第一个问题是正常的,创建好 LeanCloud 应用之后,我们会去七牛创建一个专门用来存储这个应用文件的 bucket,这个需要一定时间。

本地七牛SDK:qiniu (7.1.4)

我再次连续创建两个新应用,都有碰到这个问题。以下是我的操作步骤

  1. 在控制台,新建应用
  2. 在控制台的 _File 表,点击顶部按钮栏里最后一个按钮【上传】,文件上传成功。(是否说明去七牛创建 bucket 成功?)
  3. 在 lean-cli 中,使用 lean init 命令。将应用在本地初始化
  4. 将【上传文件测试代码】,放在 index 页面
  5. lean deploy 部署到云引擎
  6. 设置好二级域名
  7. 访问首页,然后报一样的错误:

上传文件测试代码:

from leancloud import File
from StringIO import StringIO
from urllib2 import urlopen
url = 'https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png'
_file = File('baidu22', StringIO(urlopen(url).read()))
_file.save()

一样的报错:

Traceback (most recent call last):
File "/opt/pyenv/versions/2.7.11/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
  response = self.full_dispatch_request()
File "/opt/pyenv/versions/2.7.11/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
  rv = self.handle_user_exception(e)
File "/opt/pyenv/versions/2.7.11/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
  reraise(exc_type, exc_value, tb)
File "/opt/pyenv/versions/2.7.11/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
  rv = self.dispatch_request()
File "/opt/pyenv/versions/2.7.11/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
  return self.view_functions[rule.endpoint](**req.view_args)
File "/home/leanengine/app/app.py", line 25, in index
  _file.save()
File "/opt/pyenv/versions/2.7.11/lib/python2.7/site-packages/leancloud/file_.py", line 244, in save
  self._save_to_qiniu(content['token'], content['key'])
File "/opt/pyenv/versions/2.7.11/lib/python2.7/site-packages/leancloud/file_.py", line 174, in _save_to_qiniu
  raise LeanCloudError(1, 'the file is not saved, qiniu status code: {0}'.format(info.status_code))
STDERR web1 14:09:24 LeanCloudError: LeanCloudError: [1] the file is not saved, qiniu status code: 406

补充一句:在本地浏览器访问 localhost, 文件是成功上传的。

您好,能否在 requirements.txt 里,明确指定七牛的版本为本地的 7.1.4?(qiniu==7.1.4 这种格式)最近我们发现七牛 SDK 有了变更,可能是导致不兼容的原因。

指定七牛版本后,确实可以了。非常感谢您的帮助!
也许,暂时在 lean init 所产生的 requirements.txt 里指定七牛版本,可以让其它人不碰到这个问题。

嗯嗯,感谢反馈,我们已经联络七牛解决这个问题了。