python - 使用DjangoUeditor上传图片到七牛,在本地的sae环境运行正常,在sae上则上传错误
黄舟
黄舟 2017-04-17 17:01:51
[Python讨论组]

修改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错误。

有人知道是为什么吗?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
巴扎黑

问题已解决。

我把 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() 就解决了。

ringa_lee

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号