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

SpringBoot集成Microsoft Graph SDK为SharePoint文件加元数据报404错误

SharePoint文件元数据更新404问题详情

框架

Springboot 2.6.7

使用的依赖库

microsoft-graph 5.0.0, azure-identity 1.11.0

上下文

通过azure-identity完成身份验证后,使用Microsoft Graph API Java SDK向SharePoint上传文件并为其添加元数据。

问题

文件上传功能正常,但添加元数据的功能始终返回404:NOT FOUND。已验证以下内容:

  • 文件确实存在于SharePoint中
  • 元数据字段已在SharePoint中创建(名称为testMetadataId)
  • 上传文件与更新元数据功能使用相同的环境变量

调试情况

通过Postman调用相同的API为同一文件添加元数据可正常工作。调试应用时确认,SDK调用的URL与Postman测试所用URL完全一致。

资源代码

上传文件代码

public void uploadFile(String fileName, byte[] fileContent) {        
    graphClient
            .sites(sharePointParameters.getSiteId())
            .drives(sharePointParameters.getDriveId())
            .root()
            .itemWithPath(sharePointParameters.getFolderPath() + "/" + fileName)
            .content()
            .buildRequest()
            .put(fileContent);    
}

添加元数据代码

public void updateMetaData(String fileName, String testMetadataId) {        
    FieldValueSet fields = new FieldValueSet();        
    fields.additionalDataManager().put("testMetadataId",                
            new JsonPrimitive(testMetadataId));        
    graphClient
            .sites(sharePointParameters.getSiteId())
            .drives(sharePointParameters.getDriveId())
            .root()
            .itemWithPath(sharePointParameters.getFolderPath() + "/" + fileName)
            .listItem()
            .fields()
            .buildRequest()
            .patch(fields);    
}

可正常工作的Postman元数据API

https://graph.microsoft.com/v1.0/sites/{{site-id}}/drives/{{drive-id}}/root:/{{folder-path}}/{{filename}}:/listItem/fields

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 04:17:07