Method: Baidu::PCS::Client#diff

Defined in:
lib/baidu/pcs/client.rb

#diff(cursor = 'null') ⇒ Hash

Note:

本接口有数秒延迟,但保证返回结果为最终一致

文件增量更新操作查询

Examples:

返回的原始 JSON

{
  "entries": {
    "/apps/album/6.png": {
      "fs_id": 3858723392,
      "path": "/apps/album/6.png",
      "size": 4914,
      "isdir": 0,
      "isdelete": 0,
      "revision": 0,
      "md5": "6c37219ba0d3dfdfa95ff6912e2c42b9",
      "mtime": 1384526979,
      "ctime": 1384526979
    },
    "/apps/ablum/logo.png": {
      "fs_id": 3866920660,
      "path": "/apps/album/logo.png",
      "size": 4914,
      "isdir": 0,
      "isdelete": 0,
      "revision": 0,
      "md5": "6c37219ba0d3dfdfa95ff6912e2c42b9",
      "mtime": 1384486230,
      "ctime": 1384021638
    }
  },
  "has_more": true,
  "reset": true,
  "cursor": "MxKx6UPie%2F9WzBkwALPrVWQlyxlmK0LgHG8zutwXp8oyC%2F2BQ%3D%3D...",
  "request_id": 3355443548
}

:entries  k-v形式的列表,分为以下两种形式:
            1. key为path,value为path对应的meta值,meta中isdelete=0为更新操作
                 如果path为文件,则更新path对应的文件;
                 如果path为目录,则更新path对应的目录信息,但不更新path下的文件。
            2. key为path,value为path删除的meta信息,meta中“isdelete!=0”为删除操作
                 isdelete=1 该文件被永久删除;
                 isdelete=-1 该文件被放置进回收站;
                 如果path为文件,则删除该path对应的文件;
                 如果path为目录,则删除该path对应的目录和目录下的所有子目录和文件;
                 如果path在本地没有任何记录,则跳过本删除操作。
:has_more True:  本次调用diff接口,增量更新结果服务器端无法一次性返回,客户端可以立刻再调用一次diff接口获取剩余结果;
          False: 截止当前的增量更新结果已经全部返回,客户端可以等待一段时间(1-2分钟)之后再diff一次查看是否有更新。
:reset    True: 服务器通知客户端,服务器端将按时间排序从第一条开始向客户端返回一份完整的数据列表;
          False:返回上次请求返回cursor之后的增量更新结果。
:cursor   用于下一次调用diff接口时传入的断点参数。

Parameters:

  • cursor (String) (defaults to: 'null')

    用于标记更新断点:首次调用cursor=null;非首次调用,使用最后一次调用diff接口的返回结果中的cursor

Returns:

  • (Hash)

See Also:



631
632
633
634
# File 'lib/baidu/pcs/client.rb', line 631

def diff(cursor='null')
  query = { cursor: cursor }
  get "#{BASE_PATH}/file", query.update(base_query 'diff')
end