基于金山快盘 for UbuntuKylin 的Deja-dup增强功能开发的基本构想

来源:互联网 发布:网络寻线仪使用方法 编辑:程序博客网 时间:2024/05/16 08:34
    又一次在导师的指导下,我暂停了已经基本实现自动备份、同步功能的ukbackuphelper的后续功能开发,着手研究UbuntuKylin平台已有备份服务Deja-dup的实现,并在此基础上,结合UbuntuKylin平台的金山快盘 for UK,为其添加一些符合中国用户使用习惯的功能,如一键备份相册、自动同步至云端等。在已有软件产品的基础上进行增强功能的开发,更有可能做出实际可用的产品。

关于Deja-dup

    Deja-dup是一个简单的备份工具,是Linux平台著名备份工具duplicity的前端,使用Vala语言构建。使用图形界面隐藏了很多备份工具的复杂性,呈现一个非常简单的用户界面。它的功能非常强大,支持本地/远程备份、加密备份、增量备份、定时备份等,并且已经集成到Gnome桌面中。只是没有同步备份文件至网络硬盘的功能,其支持的FTP、Amazon S3等后端对于国内普通用户较为陌生。且UbuntuKylin平台已有网盘客户端-金山快盘,若能结合两者功能,那真真儿是极好的。

实现

    由于Deja-dup使用Vala语言构建,而我对Vala不甚了解,且金山快盘 for UK并未开放源码,故而开发Deja-dup的快盘后端不甚有望。只得退而求其次,利用快盘自动同步其同步文件夹下的内容这一特性,将Deja-dup产生的备份文件放置到快盘同步文件夹内,从而实现备份的自动同步至网盘。
    计划在Deja-dup的notebook构件中添加一个page,用于一键备份图片、文档等。在备份文件位置设置页,添加使用快盘同步备份单选按钮,用于启用/禁用同步功能。最好可以在第一次启动备份服务时弹出推介配置。

附录(关于Vala语言)

    Vala是一种新的语言,它允许在gnome运行库的基础上使用现代的编程技巧(面向对象),通过使用Glib和GObject,Vala提供了动态类型系统和辅助内存管理的功能。而且由于Vala在编译时会先被转换为C语言再编译成机器码,因而有很高的执行效率。由于大量借鉴了C#的语法,因此看起来非常相似。如:
    class Sample : Object {
        void run() {
            stdout.printf("Hello,World!\n");
        }
        static void main(string[] args) {
            var sample = new Sample();
            sample.run();
        }
    }
0 0