使用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