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

能否通过自定义主键而非Item ID向SharePoint列表项添加附件?

关于SharePoint REST API通过自定义主键添加附件的问题
  • SharePoint REST API的AttachmentFiles/add附件添加端点仅支持通过Item ID定位列表项,没办法直接用自定义字段(比如你的MyPrimaryKey)构造合法请求URL,这就是你组合过滤条件时返回400错误的原因。

最优简化方案(减少API调用次数)

如果想尽量少调用接口,可以按以下步骤操作:

  1. 批量获取自定义主键与Item ID的映射
    用一个GET请求一次性拉取所有需要处理的列表项的关键信息,避免多次查询:

    GET https://{site_url}/_api/web/lists/getbytitle('{list_title}')/items?$select=ID,MyPrimaryKey&$filter=MyPrimaryKey in ('key1','key2','key3')
    

    这里用in操作符可以同时筛选多个自定义主键值,一次性拿到所有需要的Item ID。

  2. 循环调用附件添加接口
    拿到Item ID后,直接替换POST接口URL中的{item_id},循环执行附件上传操作:

    POST https://{site_url}/_api/web/lists/getbytitle('{list_title}')/items({item_id})/AttachmentFiles/add(FileName='{file_name}')
    Authorization: "Bearer " + accessToken
    Content-Length: {length of request body as integer}
    X-RequestDigest: "{form_digest_value}"
    
    "Contents of file"
    

补充说明

目前SharePoint REST API没有提供直接通过自定义字段关联附件的原生端点,必须先获取Item ID才能执行附件操作。上述方案能把API调用次数压缩到最少:1次批量查询 + N次上传(N为需要添加附件的列表项数量),是当前最简化的处理流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 04:15:59