七牛存储应用失败

By 逍遥度日君 at 2013-09-15 13:14:35 • 1564次点击

用了新的ijd8版本的,在sae上布置,blog显示正常。
应用七牛存储显示【500 error, pls try it again.】。我查了一下源代码错在upload_qiniu这个函数上。但是有个比较奇怪的地方。
view.py文件:(Line:386)

if BUCKET:
                fileurl = upload_storage(BUCKET, str(new_file_name), myfile['body'])
            elif QN_AK and QN_SK and QN_BUCKET:
                fileurl = upload_qiniu(QN_BUCKET, str(new_file_name), myfile['body'])

这里我想加一个变量,看到底走了哪个函数。写成这样
if BUCKET:
                fileurl = upload_storage(BUCKET, str(new_file_name), myfile['body'])
                servername = 'sae'
            elif QN_AK and QN_SK and QN_BUCKET:
                fileurl = upload_qiniu(QN_BUCKET, str(new_file_name), myfile['body'])
                servername = 'qn'

这样是ok的。
但是如果写成这样
if BUCKET:
            	servername = 'sae'
                fileurl = upload_storage(BUCKET, str(new_file_name), myfile['body'])
            elif QN_AK and QN_SK and QN_BUCKET:
            	servername = 'qn'
                fileurl = upload_qiniu(QN_BUCKET, str(new_file_name), myfile['body'])

页面都打不开。不知道为什么会这样。


servername 位置颠倒就不行,看了代码,看不出是什么问题。你到SAE 后台看log debug,看看有没有相关输出。

要看走哪个函数只要在setting.py 里设定下面几个:

#######下面是保存附件的空间,可选SAE Storage  和 七牛(有免费配额),只选一个
## 1) 用SAE Storage 需要在SAE 控制面板开通
BUCKET = "" #Domain Name, 如 upload 。不用或用七牛请留空

## 2) 七牛 注册可获永久10G空间和每月10G流量,注册地址 http://t.cn/z8h5lsg
QN_AK = "" #七牛 ACCESS_KEY
QN_SK = "" #七牛 SECRET_KEY
QN_BUCKET = "" #空间名称 , 如 upload

---------
应用七牛存储显示【500 error, pls try it again.】是上传附件后不能返回网址(保存附件出错)。
先试一下SAE Storage 能不能正确保存,再试试七牛。
以前在SAE 上遇到过七牛上传不了的问题,后来反馈给SAE python 小组,组长很快解决了。不知道现在是不是又上传不了了。 参见 http://saepy.sinaapp.com/t/94 1

admin at 2013-09-15 13:42:20
1

先测试了Storage,好用。

我在setting.py里写的这样

QN_AK = "aaa" #七牛 用户名
QN_SK = "bbbb" #七牛 密码
QN_BUCKET = "cccc" #我的实际空间名

打log的时候,还有点问题。我在view.py里面
import logging 这个包了。
之后在LINE:342
if bucketname and savename and filedata:
之上加了。
print 'test file'
logging.error('wrong file')
结果在【日志中心】的http栏里面,不管是【debug】种类还是【error】。里面都没有这两句。
最后,请问这个ijd8版本在本地配置有什么要求么。我按照sae的教程,下载了那个sae的环境,现在已经可以正常启动了阿帕奇,还有mysql。我自己新建了一个应用,然后把所有的ijd8的代码copy到这个包里面,但是启动不起来。我在这个项目包下放了一个index.php。可以正常调用。我觉得这可以证明阿帕奇的路径没有问题。不知道还需要修改其他什么配置。

逍遥度日君 at 2013-09-15 14:25:42
2

@逍遥度日君 你下载的SAE SDK 是php 还是python?

本地配置只需要
mysql+python+tornado

需要修改的setting.py mysql配置,views.py 最下面添加:

if __name__ == "__main__":
    import wsgiref.simple_server
    server = wsgiref.simple_server.make_server('', 8888, application)
    server.serve_forever()

七牛在本地运行要装pycurl

admin at 2013-09-15 15:28:56
3

@admin 我本身机器上装了xampp,所以可以运行php的页面。另外还装了python2.7。
看来还差tornado。我再试试看吧。非常感谢回复。我估计明晚才有时间实验了。
明天要早起。先睡了。祝好梦。

逍遥度日君 at 2013-09-15 21:48:24
4

折腾了一晚上。好像还是没什么进展。
我修改了setting.py 里面的mysql配置:
http://pan.baidu.com/share/link?shareid=1121916552&uk=1661252945
另外,views.py也添加那几句。

我的文件路径
http://pan.baidu.com/share/link?shareid=1127825548&uk=1661252945

有一点我觉得没太懂。我没在新浪到什么sae的sdk。他现在好像有一个新的开发环境。我用的
http://sae.sina.com.cn/?m=devcenter&catId=231 这个地址给的开发环境。20m的这个。
运行之后的效果如下
http://pan.baidu.com/share/link?shareid=1139129296&uk=1661252945
好像没分php或者python。
我访问的连接如下:
http://pan.baidu.com/share/link?shareid=1150646486&uk=1661252945
我还试验过访问:index.wsgi 以及views.py
效果如下:
http://pan.baidu.com/share/link?shareid=1167830529&uk=1661252945
http://pan.baidu.com/share/link?shareid=1162830104&uk=1661252945
我现在有点当初搞java装jdk的感觉了,活还没怎么干,调环境就好费劲啊~

逍遥度日君 at 2013-09-16 22:07:59
5

@逍遥度日君

在cmd 下切换到程序所在路径,输入命令:
python views.py

打开网址 http://127.0.0.1:8888/ (前提是views.py 作3楼的修改,注意if 下面的行都有四个空格缩进)

admin at 2013-09-17 00:25:02
6

@admin 谢谢。我今晚就实验一下。另外我有个小问题。阿帕奇的端口也要修改成8888么。我的端口现在是801

逍遥度日君 at 2013-09-17 09:06:41
7

@逍遥度日君 不用阿帕奇

admin at 2013-09-17 09:33:08
8
登录 后发表评论