赞
踩
目 录
网络云盘上传下载系统摘要…………………………………………………………………………………………5
The Network Cloud Disk`s Upload and DownloadAbstract……………………………………………6
引 言 9
国内外主流云盘现状 9
几款云盘主要提升空间 9
第一章 系统分析 11
1.1系统可行性分析 11
1.1.1 经济可行性 11
1.1.2 技术可行性 11
1.1.3 操作可行性 12
1.2系统功能需求概述 12
1.3系统设计规则和运行环境 12
1.3.1运行环境: 12
第二章 Hadoop集群及HDFS技术 14
2.1 Hadoop集群 14
2.1.1什么是Hadoop集群 14
2.1.2 Hadoop的历史和发展 14
2.1.3 Hadoop名字由来 14
2.2 HDFS文件分布式系统 15
2.2.1 HDFS分布式文件系统介绍 15
2.2.2 HDFS的特性 15
2.2.3 HDFS的优点: 16
2.2.4 HDFS缺点: 16
2.2.5 HDFS组成模块: 16
2.2.6 HDFS工作原理 17
第三章 用户信息安全维护 19
3.1用户云存储信息安全和维护 19
3.1.1目前存在的问题 19
3.1.2普遍的解决方案 19
3.2点对点文件分享技术 20
3.2.1 点对点技术概念 20
3.3.2 点对点实例介绍 20
3.3.3 点对点技术法律引申 20
第四章 系统概要设计 22
4.1 系统代码架构 22
4.2 数据库结构设计 22
4.3 系统功能模块 22
4.4 项目文件结构以及业务流程图一览 23
第五章 环境部署和配置 24
5.1 建立本机和ubuntu的连接 24
5.1.1 桥接方式(bridged): 24
5.1.2 网络地址转换(NAT) 24
5.1.3 仅主机模式(Host-only) 25
5.2 hadoop集群部署 27
5.2.1hadoop下载安装 27
5.2.2 必要的文件配置 27
5.2.3 启动hadoop 28
第六章 系统详细设计及代码实现 29
6.1主要模块和代码实现 29
6.1.1 登录模块 29
6.1.2注册模块 30
6.1.3用户新建文件夹 31
6.1.4用户分享文件 32
6.1.5上传文件 32
6.1.6下载文件模块 34
6.2核心方法代码块 34
6.2.1 代码功能及实现 34
6.2.2 重要对象及其方法调用 39
第七章 系统测试 41
7.1 测试概述 41
7.2模块测试内容 41
7.2.1 注册模块测试 41
7.2.2上传模块测试 42
7.2.3下载模块测试 43
7.2.4分享模块测试 45
总结和展望 46
参考文献 47
致 谢 48
外文原文 49
1.2系统功能需求概述
本课题要实现的是网络云盘的设计,所以功能清晰明了,在设计该系统时,应尽可能的贴近生活,便于操作和使用。系统在实现上应该具有如下功能:
1 注册登录
要实现基本的注册登录功能,以管理和保密自己的文件。
1)上传下载:
上传功能:从本地将文件上传至hadoop集群所管理的datanode主机中。
下载功能:从“云端”即datanode主机中,下载自己所上传的文件,或同伴分享给自己的文件到本地。
2)遍历文件夹功能:
遍历文件夹:在线浏览自己的“云端”所存的文件及目录。
3)分享功能:
将自己所上传的文件分享给制定好友,使好友也具备下载该文件的权限,而实现共享。
1.3系统设计规则和运行环境
系统设计规则:代码简洁,功能实用,去除掉哗众取宠的鸡肋功能,专注于网络云盘的基本功能的实现。用户要简单明了,学习适应的成本低,容易上手。
1.3.1运行环境:
本项目是Hadoop集群的,所以比之于其他java项目多了对linux系统的依赖,好在linux有免费安装包,可以很容易从网上下载到。本项目的大致环境参数如下:
表1.1项目环境参数
开发主机版本 windows10专业版
java程序服务器 apache-tomcat-6.0.53
hadoop版本 hadoop-2.6.5
hadoop集群部署环境 ubuntu火麒麟版linux
第四章 系统概要设计
基于hadoop的网络云盘系统,该系统的模块主要有用户注册模块、登陆模块,用户信息管理模块(实现用户信息的增加、删除、改动、查寻),文件上传模快来实现文件的增加、删除、改动,文件下载模块,文件点对点共享这五个模块。
4.1 系统代码架构
完成了系统的需求分析之后,就进入了系统的设计阶段,在整个系统的开发时期中,设计阶段是最主要的阶段。按软件生存周期的划分,设计任务通常分两个阶段来完成。第一个阶段是概要设计,本文转载自http://www.biyezuopin.vip/onews.asp?id=11707它的任务是建立软件的总体结构,即软件的组成,以及各组成成分(子系统或模块)之间的相互联系。
第二个阶段是详细设计,其任务是确定模块的内部算法和数据结构,产生描述各个模块程序过程的详细设计文档。本系统采取了原型法,先根据需求分析设计出原型,然后在原型的基础上进行不断的测试和改进。在本系统的设计过程中采取了模块化的设计方法,化繁为简。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <%@ page import="java.util.Map" %> <%@ page import="java.util.List" %> <%@ page import="com.file.dal.*" %> <%@ page import="com.file.model.*" %> <% if(session.getAttribute("username")==null) response.getWriter().println("<script>alert('请登录!');location.href='Login.jsp'</script>"); String user=session.getAttribute("username").toString(); OperaHDFS openHdfs=new OperaHDFS(); List<directory> listdir=openHdfs.GetHDFSDirectoryListAll("",user); List<document> listdoc=openHdfs.GetHDFSDocumentListAll("",user); session.setAttribute("directory", "hdfs://10.15.8.188:9000//user/"+user+"/"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My Cloud</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link rel="stylesheet" type="text/css" href="images/style.css"> </head> <body> <div id="wrapper"> <%@ include file="header.jsp"%> <div id="page"> <div id="content"> <div id="direcoryNow"> </div> <div id="listdir"> <p>文件夹</p> <% for(int i=0; i<listdir.size(); i++){ directory dir=listdir.get(i); %> <div class="dir list"><span> <img src="images/file.png" width="50" height="50" alt="1" /> 文件夹名: <%=dir.getName()%> 创建时间: <%=dir.getTime()%> <a href="mainList.jsp?directory=<%=dir.getName()+"/" %>">打开此文件夹 </a> <a href="DownLoad.jsp?directory=<%=dir.getName()+"/"%>">修改 </a> <a href="ShareFile.jsp?directory=<%=dir.getName()+"/"%>">分享 </a> </span></div> <% } %> </div><!--listdir end--> <div id="listdoc"> <p>文件</p> <% for(int i=0; i<listdoc.size(); i++){ document doc=listdoc.get(i); %> <div class="doc list"><span> <img src="images/document.png" width="50" height="50" alt="1" /> 文件名: <%=doc.getFilename()%> 创建时间: <%=doc.getTime() %> <a href="Rename.jsp?filename=<%=doc.getFilename()%>">修改 </a> <a href="servlet/FileDownloadServlet?filename=<%=doc.getFilename() %>">下载</a> <a href="ShareFile.jsp?directory=<%=doc.getFilename()%>">分享 </a> </span></div> <% } %> </div><!--listdoc end--> </div><!--content end--> <br class="clearfix" /> </div><!--page end--> </div> <div id="footer"> Copyright (c) 2012 . All rights reserved. Design by <a href="#" rel="nofollow">MY Cloud</a>. </div> </body> </html>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。