You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SharePoint REST API获取列表或事件附件的变更日志?

SharePoint REST API 获取列表项/事件附件变更日志方案
  • 复用getChanges API捕获附件关联变更
    你当前使用的getbytitle('List')/getChanges API其实可以捕获附件的增删改操作,核心是调整请求的查询参数:

    • 当附件被添加或删除时,列表项的Attachments字段会变更,因此可以在ChangeQuery中指定Item: true和Update: true,结合时间范围筛选,就能捕获这类变更;
    • 附件文件本身被替换(更新)时,也会触发列表项的更新事件,同样可以通过该API捕获,后续可通过GetItemById(itemId)/AttachmentFiles接口对比变更前后的附件列表,确认具体操作的附件。
      示例请求体(POST请求到_api/web/lists/getbytitle('YourList')/getChanges):
    {
      "query": {
        "__metadata": { "type": "SP.ChangeQuery" },
        "Item": true,
        "Update": true,
        "ChangeTokenStart": {
          "__metadata": { "type": "SP.ChangeToken" },
          "StringValue": "1;3;{你的列表ID};2024-01-01T00:00:00Z;0"
        }
      }
    }
    
  • 直接监控附件存储库的变更
    每个列表的附件都存储在对应的隐藏文档库中(路径为Lists/目标列表名/Attachments),直接对这个文档库调用getChanges API,能更精准地获取附件的增删改记录:

    • 先获取附件库的API地址:_api/web/lists/getbytitle('目标列表名')/RootFolder/Folders/getbyurl('Attachments')/ParentList
    • 对该库执行getChanges时,指定Item: true以及对应的ChangeType(Add/Update/DeleteObject),返回的变更记录会包含附件文件的详细信息,通过文件路径中的ItemID文件夹可关联到对应的列表项(事件本质是特殊列表项,逻辑完全一致)。
  • 关键注意点

    • SharePoint的变更日志有保留期限,超出期限的历史变更无法获取;
    • 若需要区分“添加附件”和“删除附件”,可在捕获列表项变更后,对比变更前后Attachments字段的状态,或通过附件库的变更类型直接判断。

内容的提问来源于stack exchange,提问作者user3286239

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:42:50