K_Reverter的网页开发记录

要么不做,要么就当作艺术品来做!

导航

在GAE数据库之中保存文件

        GAE的数据库是支持向里面保存文件的(说老实话,就算不支持,通过对二进制转化为文本肯定也是可以保存的),这个功能我知道,不过我的用不着,因为我的网站文件并不多,数据库却大的不行,我一直在苦恼如何去节省数据库空间,而从来不去想如何节省文件空间,可是有一个网友一定要我研究一下(主要是有些人比较懒,不想研究,唉!),我只好简单的进行了一下研究,还好,还是比较容易的,现在将主要的流程讲一下。

        首先当然是怎么向数据库之中存文件,我仅仅研究了通过本地向远程数据库上传静态文件的模式,想来,通过服务器创建二进制文件并保存也没有什么不同。我使用python脚本实现了一个方便的工具,一旦运行这个脚本,就会将该脚本所在位置uploadFiles文件夹下面的内容上传到GAE的数据库之中,下面是该脚本的源码,那是相当的简单啊:

 

uploadFiles.py

 

        因为我无意于使用该功能,所以上面的脚本做的很简单,具体的使用可以自己扩充更改,脚本只需要配置上传文件夹路径、appid、remote_api路径三项就应该可以运行了。

        上传成功之后,可以在GAE后台看到数据,对于content字段,在GAE后台显示为类似"156240 bytes, SHA-1 = 1d616cd4cd0de8e26f350143e29b3cc63e156825"的描述文本。

        下面的问题是如何调用和返回这个内容,这更加容易了,我是采用以下方式来返回此文件的:

 

result=FileData.all().filter("path = ",path).fetch(1)
if len(result)>0:
    self.response.out.write(result[0].content)
else:
    self.response.set_status(
404)

 

        很轻松容易吧,事实上就是这么简单的,有些网友不怎么喜欢研究,这一点要好好批评一下!

posted on 2009-04-07 19:47  K_Reverter  阅读(2458)  评论(12编辑  收藏  举报