Alfresco API

POST /nodes/{nodeId}/lock

基本信息

Note: 该端点在Alfresco 5.2和更高版本中可用。

锁定nodes nodeId

Note:您只能锁定文件。更具体地说,只有类型为cm:contentcm:content的子类型的nodes才能被锁定。

该锁由当前用户拥有,并防止其他用户或进程对该nodes进行更新,直到释放该锁为止。

如果timeToExpire未设置或为零,则锁定永不过期。否则,timeToExpire是锁定到期之前的秒数。

锁到期时,将释放该锁。

如果该nodes已被锁定,并且用户是锁的所有者,那么将使用新的timeToExpire更新该锁。

默认情况下,将应用一个锁,该锁允许所有者更新或删除该nodes。您可以使用type将锁定类型更改为以下之一:

  • ALLOW_OWNER_CHANGES(默认)对nodes的更改只能由锁所有者进行。该枚举的值与Alfresco Public Java API中org.alfresco.service.cmr.lock.LockType中描述的不赞成使用的WRITE_LOCK相同。这是默认值。
  • FULL不允许任何用户进行任何更改。该枚举的值与Alfresco Public Java API中org.alfresco.service.cmr.lock.LockType中描述的不赞成使用的READ_ONLY_LOCK相同。

默认情况下,锁保留在数据库中。您可以通过将生命周期(lifetime)属性设置为EPHEMERAL来创建易失的内存中锁。例如,如果您频繁使用短期锁定,则可以选择使用EPHEMERAL锁定,而在重新启动存储库时不需要保留这些短期锁定。在这种情况下,您不需要将锁写入数据库的开销。

如果无法对nodes进行锁定,那么将返回错误。

请求方式: POST

请求API :/ nodes / {nodeId} / lock

响应等级(状态200)

成功回应

{
  "entry": {
    "id": "string",
    "name": "string",
    "nodeType": "string",
    "isFolder": true,
    "isFile": true,
    "isLocked": false,
    "modifiedAt": "2021-01-08T08:52:11.418Z",
    "modifiedByUser": {
      "displayName": "string",
      "id": "string"
    },
    "createdAt": "2021-01-08T08:52:11.418Z",
    "createdByUser": {
      "displayName": "string",
      "id": "string"
    },
    "parentId": "string",
    "isLink": true,
    "isFavorite": true,
    "content": {
      "mimeType": "string",
      "mimeTypeName": "string",
      "sizeInBytes": 0,
      "encoding": "string"
    },
    "aspectNames": [
      "string"
    ],
    "properties": {},
    "allowableOperations": [
      "string"
    ],
    "path": {
      "elements": [
        {
          "id": "string",
          "name": "string",
          "nodeType": "string",
          "aspectNames": [
            "string"
          ]
        }
      ],
      "name": "string",
      "isComplete": true
    },
    "permissions": {
      "isInheritanceEnabled": true,
      "inherited": [
        {
          "authorityId": "string",
          "name": "string",
          "accessStatus": "ALLOWED"
        }
      ],
      "locallySet": [
        {
          "authorityId": "string",
          "name": "string",
          "accessStatus": "ALLOWED"
        }
      ],
      "settable": [
        "string"
      ]
    }
  }
}

响应内容类型 applicaiton/json

Query参数

名称 类型 是否必填 示例值 描述
include Array[string]   返回有关该nodes的其他信息。 可以请求以下可选字段:allowableOperations;association;isLink;isFavorite;isLocked;path;permissions
fields Array[string]   field名称的list。 例如,如果您想节省整体带宽,则可以使用此参数来限制响应中返回的field。
例如,如果您想节省整体带宽,则可以使用此参数来限制响应中返回的field。 该列表适用于返回的单个实体或集合中的条目。
如果API方法也支持include参数,则除了在fields参数中指定的fields外,还返回include参数中指定的fields。

Path参数

名称 类型 是否必填 示例值 描述
nodeId string   nodes的标识符。

Body参数(nodeBodyLock

request body示例

{
  "timeToExpire": 0,
  "type": "ALLOW_OWNER_CHANGES",
  "lifetime": "PERSISTENT"
}

错误信息描述

状态码 原因
400 无效的参数:nodeId无效,或者nodeBodyLock无效,或者试图在非文件nodes上锁定
401 验证失败
403 当前用户无权锁定nodeId
404 nodeId不存在
422 无法锁定nodeId
default 意外错误

返回结果示例

{
  "error": {
    "errorKey": "string",
    "statusCode": 0,
    "briefSummary": "string",
    "stackTrace": "string",
    "descriptionURL": "string",
    "logId": "string"
  }
}