操作历史 events

数据结构

例子:同步盘策划书.doc

[
    {
        "id":210,
        "opType":"EDIT",
        "path":"/同步盘策划书.doc",
        "isdir":false,
        "isdel":false,
        "size":17,
        "version":2,
        "srcMachineName":"01acs5wkSoWdODo2sUK-dw",
        "editorNickName":"aisuhua",
        "editorAccount":"1079087531@qq.com",
        "timestamp":1494827907000,
        "isVirus":false
    },
    {
        "id":209,
        "opType":"ADD",
        "path":"/同步盘策划书.doc",
        "isdir":false,
        "isdel":false,
        "size":0,
        "version":1,
        "srcMachineName":"01acs5wkSoWdODo2sUK-dw",
        "editorNickName":"aisuhua",
        "editorAccount":"1079087531@qq.com",
        "timestamp":1494827835000,
        "isVirus":false
    }
]

字段分析

opType 行为类型

行为 标识 例子 说明
增加 ADD 用户 增加文件 同步盘策划书.doc -
修改 EDIT 用户 修改文件 同步盘策划书.doc -
重命名 RENAME 用户 重命名文件 同步盘策划书-初稿.doc(原名 同步盘策划书.doc) -
删除 DELETE 用户 删除文件 同步盘策划书.doc -
恢复 RESTORE 用户 恢复文件 无标题文档2 文件的历史版本记录中可执行此操作
粉碎 PURGE 用户 粉碎文件 无标题文档2 回收站可执行该操作,不可恢复
移动 MOVE 用户 移动文件 同步盘策划书.doc(从 temp 到 myfolder) 移动文件或重命名文件夹时,会发生此操作

path 文件的完整路径

  • 坚果云中的文件没有ID,或者说它的ID就是文件的完整路径 path

  • 同目录下,文件名一定是唯一的。

  • 通过 path 来查看它的版本信息、判断冲突等等。(会产生有趣的现象)

isdir 是否为目录

文件分类 标识
文件 file
文件夹 directory

version 文件版本

  • 每一次操作就会产生一个新的文件版本,操作与文件版本之间是一对一的关系。

  • 文件的版本是操作后的结果,文件的版本号随每一次操作而递增。

操作

操作 说明
撤销 撤销当前操作,把文件状态回滚到当前操作所对应版本的上一个版本

历史版本

数据结构

例子:文件的版本信息

[
    {
        "version":3,
        "opType":"RESTORE",
        "editorNick":"aisuhua",
        "editorAccount":"1079087531@qq.com",
        "mtime":1494828124000,
        "size":17,
        "isDir":false,
        "isDeleted":false,
        "isDelta":false,
        "altPath":null
    },
    {
        "version":2,
        "opType":"EDIT",
        "editorNick":"aisuhua",
        "editorAccount":"1079087531@qq.com",
        "mtime":1494827907000,
        "size":17,
        "isDir":false,
        "isDeleted":false,
        "isDelta":false,
        "altPath":null
    },
    {
        "version":1,
        "opType":"ADD",
        "editorNick":"aisuhua",
        "editorAccount":"1079087531@qq.com",
        "mtime":1494827835000,
        "size":0,
        "isDir":false,
        "isDeleted":false,
        "isDelta":false,
        "altPath":null
    }
]

操作

操作 说明
恢复 把文件恢复到特定版本所对应的状态
下载 下载特定版本的文件

几点特征

  • 文件夹没有历史版本信息,不能将它恢复到指定的版本。

  • 文件的历史版本记录中没有‘重命名’ RENAME 类型的记录。但 RENAME 操作可以在操作历史中看到。

同步文件夹

分类

分类 说明
个人同步文件夹 同步个人的私有文件
多人协同文件夹 多人参与的同步文件夹
  • 同步文件夹被删除后,该文件夹下的所有文件将被永久清空,不可恢复。

文件冲突

冲突发生的过程:

%E5%86%B2%E7%AA%81%E7%A4%BA%E6%84%8F%E5%9B%BE.png

根据版本号判断文件是否冲突,若本地所修改文件的版本号跟服务端不一致,那么就会发生冲突。

参考:如何避免和解决文件冲突

增量更新

%E8%AF%B4%E6%98%8E.jpg

参考:智能增量同步

例子

操作记录

例1:把 folder 重命名为 folder2

clipboard.png ---> clipboard.png

操作记录

clipboard.png

上传过程

上传进度

clipboard.png

网络截图

  • create 创建文件夹

  • upload 上传文件

clipboard.png

clipboard.png

响应内容

{"version":1,"name":"folder4","path":"/folder4"}

clipboard.png

响应内容

{"size":34,"version":1}

aisuhua
1.6k 声望27 粉丝

努力成为一名称职的工匠师


引用和评论

0 条评论