Node.js+HDFS开发的简易网盘

最近研究了HDFS的相关内容,基于WebHDFS REST APIHadoop-1.1.2版)制作了一个了简易的网盘。实现了账号注册,文件的上传、下载、删除等功能。由于基于Hadoop,参考Dropbox的命名,将其名字定为Doopbox。项目地址:https://github.com/xushvai/Doopbox

业务/应用服务(调用HDFS服务的服务)使用node.js+Express开发。

数据库中只有一个account表 ...


实现一个TagCloud

Tag Cloud即:标签云,是把标签汇集起来形成的界面,多出现在一些使用标签来组织内容的页面上,通常就是这种形式:
标签的显示效果是随着其出现的频率或重要程度被不断加强的,越是凸显的标签就说明其出现的频率越高或者越重要。基于这个特点来看,标签云其实起到了推荐和引导的作用。

制作一个简单的Tag Cloud:“被引用次数越多的标签其字号越大”(某个文章的Tag属性中若是设置了某个标签,就说该标签被引用了一次)。

首先要确定标签被引用的次数与字号之间的对应关系,也就是说拿到一个数值x,你得能算出对应的字号f ...


基于Django构建Blog(14)-部署续

我们的Django工程至少有两个运行环境,即:"开发/调试环境"和"生产环境"。两种环境下的工程配置"settings.py"是不同的,同时,工程所需的依赖通常也是有区别的,即:"requirements.txt"文件也会不同。

这就导致了一个结果:每当我们把处于某一环境中的代码部署到另一个环境中时,就需要修改一次"settings.py"和"requirements.txt"文件,尤其是"settings.py",是必须要修改的。这样做不仅麻烦,而且更容易出错。

问题的根源就在于,"settings.py"和"requirements.txt"文件都只有一份,而我们的环境却不止一个。我们应该为不同的环境分别提供一份"settings.py"和"requirements.txt"文件。处于哪个环境,就使用哪套配置,不同环境下的配置不会互相污染。

针对这个问题 ...


基于Django构建Blog(13)-部署

到目前为止,一个简单的blog系统就完成了,下一步的工作就是想办法将这个系统部署到生产环境。主要有三个步骤:1. 配置生产环境;2. 配置待部署的Django工程;3. 把配置好的Django工程部署到生产环境(上线)。

配置生产环境

Django 1.7版的官方文档中提到了WSGIFastCGISCGIAJP技术。另外,还指出了在线电子书《The Django Book (2nd Edition)》第12章中提到的Apache + mod_python方案 ...


基于Django构建Blog(12)-其它

到目前为止,这个blog的基本功能就已经全部实现了。系统用例中的那个“备份”和“还原”其实是想做在admin页面中,用户登入admin后,点击按钮,就可完成内容的备份和还原,同时还可以将备份的数据保存到指定的云端服务中。我们讨论的重点不是内容的备份/还原,所以在系统用例中只做了简单描述,其相关实现可以参看xlog工程源码。

另外,还有一个问题就是:在编辑文章的时候如果需要插入图片或文档该怎么办?

对于这个问题 ...


基于Django构建Blog(11)-URL

View篇中描述了View的实现细节,不过,要想让这些View工作起来,还需要告诉Django,用户请求与这些View之间的对应关系,只有这样,Django才能把到来的请求交由相应的的View去处理。

方法是在"urls.py"文件中添加"url模式",其实就是用正则表达式来描述对应到某个View的url。打开xblog/settings.py文件,找到"ROOT_URLCONF",发现它的值是'xblog.urls',这就是说xblog目录下的urls.py是根配置文件,Django要加载的就是这个urls.py文件。

为使用一些第三方App,在前面几篇中已经加入了针对这些App的"urls模式",同理,加入针对blog的"urls模式":
使用 ...