由于ubuntu one 停止服务,由于众所周知的原因dropbox插件在中国也没法使用,一直没有好的linux同步工具,所以自己索性写了一个跨平台的工具。自己在设计和实现的过程中学习到了不少知识,下面自己写成博客,慢慢分享。

首先是需求分析,自己用用例图画了一个如下。

需求分析:

从上面看,这个软件主要的功能比较简单,交互的对象比较少。

作为功能的核心,主要是检测文件系统的改变,然后将文件系统的改变同步到云服务器上。其他的功能就是基于这个主要功能而做的配置。

了解了用户需求(其实主要是我自己的需求),我们就可以开始选择开发语言和框架了。由于鄙人需要是一个跨平台软件,而且最好能敏捷开发。所以自己选择python跨平台、简洁而又强大的语言。同时选择Qt的绑定作为UI的界面,因为程序。同时需要一个能支持分布式的版本管理系统。所以git是我的选择,同时开始第一次试用github,话说这个在GFW下访问巨慢(呵呵)。

那么开始大体的软件设计了,在设计前需要知道大体的软件流程,比如用户添加删除同步目录,软件如何做。

软件的活动图如下:

我们可以看到,当用户添加目录时,软件需要添加到配置信息中,同时开启对添加目录下面文件、目录的变动的监控。当有文件变动时,需要同步云服务器的相关改动,同时通知客户。

而当删除目录时,相关文件系统监控则需要移除。

展示下界面:

之后将继续介绍相关详细设计以及代码实现,欢迎关注。

跨平台的网络云盘软件设计实现[一]相关推荐

  1. 跨平台的网络云盘软件设计实现【二】

    在我们做好软件的用例分析.语言的选择和基本的一个功能活动图后,我们便可以开始大致软件的设计. 在用例图中,我们看到有两个用例:一个是用户的配置.一个是系统的监控.但用例图中中还隐藏着一个功能,那就是同 ...

  2. 基于Java+hadoop网络云盘上传下载系统设计与实现

    目 录 网络云盘上传下载系统摘要----------------------------------5 The Network Cloud Disk`s Upload and DownloadAbst ...

  3. 网络云盘项目——Redis部署、MySQL部署、MySQL表设计

    一.本文目的 本项目分为6篇博客文章完成: 1.项目总体介绍:https://blog.csdn.net/qq_41453285/article/details/107871393. 2.Redis部 ...

  4. 基于Django框架的网络云盘设计

    基于Django框架的网络云盘设计 网络云盘设计流程(第一篇) 前言 前期准备与环境搭建 创建一个Django工程,跑一个HelloWorld 网盘设计简介及成果展示 功能1,"登录&quo ...

  5. 网络云盘项目——HTTP接口介绍、功能介绍、服务端/客户端代码解析

    一.本文目的 本项目分为6篇博客文章完成: 1.项目总体介绍:https://blog.csdn.net/qq_41453285/article/details/107871393. 2.Redis部 ...

  6. 基于Hadoop2.2.0版本号分布式云盘的设计与实现

    基于Hadoop2.2.0版本号分布式云盘的设计与实现 一.前言 在学习了hadoop2.2一个月以来,我重点是在学习hadoop2.2的HDFS.即是hadoop的分布式系统,看了非常久的源代码看的 ...

  7. graphpad软件百度云分享吧_还在用百度云软件?来试试这四个良心的云盘软件吧!...

    天翼云盘 http://t.cn/StujV7 一看名字相信大家都知道它是电信的云盘软件,没错它是一款由中国电信推出的云存储服务,为用户提供跨平台的文件存储.备份.同步及分享服务,是国内领先的免费网盘 ...

  8. 育网校园云盘软件简介(四维一体解决方案)

    分类: 数据库系列 mysql -uroot ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/ ...

  9. 基于Hadoop2.2.0版本分布式云盘的设计与实现

    基于Hadoop2.2.0版本分布式云盘的设计与实现 一.前言 在学习了hadoop2.2一个月以来,我重点是在学习hadoop2.2的HDFS.即是hadoop的分布式系统,看了很久的源代码看的我真 ...

最新文章

  1. 非常实用的 Python 技巧
  2. Android 应用Crash 后自动重启
  3. 微信小程序/uni-app 封装请求
  4. nginx 做负载均衡
  5. cache + db 性能
  6. Linux排障必备命令
  7. tensorflow学习(3.tensorboard的使用)
  8. vscode 1.9.11 和pycharm 5.0.4 输入os.getcwd()后输出不相同
  9. TensorFlow11CNN和全卷积神经网络
  10. 紫色管理系统UI bootstrap后台模板
  11. Python 虚拟环境迁移路径后pip报错解决记录
  12. [CodeForces 372A] Counting Kangaroos is Fun
  13. 卡巴斯基key下载~
  14. 打开网站服务器显示403,打开网站显示403是什么意思
  15. 封装获取一个URL地址问号后面传递的参数信息以及哈希值HASH 方法
  16. CVPR 2022|解耦知识蒸馏!旷视提出DKD:让Hinton在7年前提出的方法重回SOTA行列!...
  17. 绿幕换背景、绿幕视频实时换背景
  18. Unity解析和读取文本—— txt 文件
  19. 设计师:设计师知识储备之室内设计风格图文介绍大全(中式风格、清新风格、现代简约、现代风格、后现代风格、田园风格-中式田园-欧式田园-美式田园-美式乡村风格)之详细攻略
  20. MySQL in、exists是否走索引

热门文章

  1. 电子元件CE认证怎么办理
  2. 管理新概念——网格化管理
  3. archlinux使用支付宝控件不正常
  4. Arduino框架下联盛德W801实现流水灯示例
  5. 1.InfluxDB简介与安装
  6. Embedding理解+代码
  7. 新中国70年:银行业的五个发展阶段
  8. 给出年分m和一年中的第n天,算出第n天是几月几号。
  9. 神操作 之 「玲珑宝塔」优化 Apk 包大小
  10. MySql优化(六)MyCat中间件