SpringBoot集成Microsoft Graph SDK为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
相关产品推荐
相关产品推荐

