小学期作业不会做,想找大神请教

qq_29440847 2016-07-12 05:03:44
编写程序实现文件的分布式存储。

FileStorage应用程序提供文件的网络存储能力,
该应用程序读取运行文件夹下的名称为storage*.properties
文件,该文件的内容如下:
server=aName
ip=ip address
port=aPortint
root_folder=aFolder
volume=100GB

通过server属性来给文件存储服务器一个名称,该名称要求唯一。
ip属性就是该文件存储服务器的IP地址,port属性就是提供文件存储
服务的端口号,root_folder属性设定文件的存储文件夹。
volume属性设置该文件服务器的最大存储空间。单位只能是KB,MB,GB
实际的文件存储容量不允许超过此值。该值是可以更改的,更改设置
需要在整个系统重新启动后生效。

FileServer应用向客户端提供文件存储服务的访问接口,FileServer以客户端访问
FileStorage提供的文件存储服务,并提供容错备份功能,该应用保证文件在后端
存储中有1+1方式的备份,文件存储以随机的方式在后端服务器中选择两个节点
进行数据存储操作。保证文件在后端存储中有备份保证。该服务器完成文件名称的
添加唯一标识的处理过程。文件在上传处理时,为了解决文件名称重名的问题,
自动为文件名称生成UUID,然后将UUID的字符串添加到文件名称的开始部分。
UUID.randomUUID().toString() + filename

FileServer在内存中需要管理后端FileStorage服务器的信息,包括名称,ip,端口,
容量,实际容量,剩余容量,文件数量,是否可用等信息。
在FileServer启动时读入这些信息,这些信息需要保存到文件中,该文件要求是文本文件。
第一次运行时,需要判断是否是第一次运行,FileServer需要将各个FileStorage的配置文件集中存放在
一个文件夹下。运行时读入这些配置文件。FileServer不仅需要管理后端的FileStorage
服务器,还需要记录每个文件的信息,包括文件名称,UUID, 文件大小,两个备份
存储位置,等信息。
在FileServer应用中,必须定义Server.java, File.java这样的类似的实体类,对后端的存储服务器进行定义,同时对存储
的文件进行定义,必须定义服务器的工作状态,必须定义文件的存储信息。
该程序必须提供一定的容错功能,分布存储功能,服务器启动后,这些信息必须由一个文本文件进行加载,
由于没有学习到数据库,所以信息的持久化存储由文本文件来实现。文本信息每行文本为一条记录,应用程序启动后
读取,如果文件不存在,则是整个系统第一次启动的状态,服务器FileServer启动后读取该文本文件,关闭后,将信息
保存(覆盖方式)保存到文本文件中。FileServer暂不考虑意外宕机造成的问题,假定FileServer是稳定可靠的运行。
但是后端的存储结点(FileStorage)以及连接到后端节点的网络都有可能出现意外,要求程序尽可能的对这些意外情况
进行容错处理。
可以通过命令行方式,或者图形用户界面方式显示FileServer的一些运行统计信息,例如总文件数量,总服务器存储结点数量
等运行过程中的实时统计信息。




FileClient就是文件存储服务的客户端程序。提供如下运行方式
上传文件
java FileClient upload afile
该程序输出一个新存储文件的uuid,就是在服务器端保存的文件的唯一标识。

下载文件
java FileClient download uuid

删除文件
java FileClient remove uuid

文件改名
java FileClient rename uuid newfilename

...全文
289 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
丿liber 2016-07-13
  • 打赏
  • 举报
回复
软院的吧
qq_29440847 2016-07-12
  • 打赏
  • 举报
回复
我顶 顶顶顶顶顶顶顶顶

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧