惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
J
Java Code Geeks
博客园 - 【当耐特】
宝玉的分享
宝玉的分享
腾讯CDC
D
DataBreaches.Net
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
V
V2EX
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
Jina AI
Jina AI
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
B
Blog
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium

博客园 - K_Reverter

甘南-青海湖九日游(一.出发) Jla框架介绍(五) 设计模式:模块和实例管理 Jla框架介绍(四) 配置管理模式 Jla框架介绍(三) 资源引用和Sprite模式 Jla框架介绍(二) 核心和基本规范 - K_Reverter - 博客园 Jla框架介绍(一) 导言和发展历程 解散了地图接口讨论群 重新趋于稳定 黄山游记(三.总结和经验) 黄山游记(二) 黄山游记(一) 杭州西湖长线暴走行程 在杭州的日子 求助:关于IE之中获取鼠标位置 离开腾讯了 谁在频繁的访问我的服务器接口?请和我联系 - K_Reverter - 博客园 我的网站已经全部运行在GAE下 想离开腾讯了 关于geohash的简单探讨
在GAE数据库之中保存文件
K_Reverter · 2009-04-07 · via 博客园 - K_Reverter

        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)

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