使用DjangoUeditor上传图片到七牛,在本地的sae环境运行正常,在sae上则上传错误

修改DjangoUeditor里的views.py的save_upload_file

#保存上传的文件

def save_upload_file(upload_file,key):

access_key = ''

secret_key = ''

bucket_name = ''

try:

from qiniu import Auth,put_file,put_data

q = Auth(access_key, secret_key)

token = q.upload_token(bucket_name, key)

ret, info = put_data(token, key, upload_file)

print(info)

if ret.get('key',None) == None:

raise Exception('upload error')

else:

return u"SUCCESS"

except Exception,E:

return u"失败"+info

#返回数据

QINIU_BUCKET_DOMAIN = 'http://7xpt71.com1.z0.glb.clouddn.com/'

return_info = {

'url': urllib.basejoin(QINIU_BUCKET_DOMAIN , OutputPathFormat) , # 保存后的文件名称

'original': upload_file_name, #原始文件名

'type': upload_original_ext,

'state': state, #上传状态,成功时返回SUCCESS,其他任何值将原样返回至图片上传框中

'size': upload_file_size

}

return HttpResponse(json.dumps(return_info,ensure_ascii=False),content_type="application/javascript")

在本地的sae环境下,成功上传,但是在sae服务器环境下,则上传错误。
下面是本地成功上传和服务器下失败的抓包:
图片描述
图片描述

我注意到,本地成功上传,Content-Type是application/javascript,到了sae服务器,会产生一个500错误,Content-Type成了text/html。

代码和设置是完全一样的,我直接从sae上chekout下来本地,上传也是成功的,但在sea上就会上传失败,产生一个500错误。

有人知道是为什么吗?

回答:

问题已解决。

我把 save_upload_file 里的try..except 去掉,发现报一个IOError
[Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/data1/www/htdocs/725/fudjangoblog/1']

追踪到问题出现在qiniu/services/storage/upload_progress_recorder.py里调用了tempfile.gettempdir()。
把tempfile.gettempdir()改成sae.core.get_tmp_dir() 就解决了。

回答:

我也与到同样问题,为什么要改成那样呢?sae模块用什么语句引入呀?

以上是 使用DjangoUeditor上传图片到七牛,在本地的sae环境运行正常,在sae上则上传错误 的全部内容, 来源链接: utcz.com/a/156601.html

回到顶部