SharePoint API GetFileByServerRelativeUrl可用但GetFolderByServerRelativeUrl操作返回404
问题根因排查&解决方案
1. 站点上下文不匹配(最高概率)
你当前所有请求的API前缀是/sites/front/_api,即你是在**/sites/front站点上下文下发起请求,而目标文件/文件夹的服务器相对路径属于/sites/homePage站点**。
- SharePoint REST API中
GetFileByServerRelativeUrl接口支持同站点集下跨站点查询文件,因此你可以正常获取文件内容;但GetFolderByServerRelativeUrl下的Files集合查询、add写入操作仅支持在文件所在站点的上下文下调用,跨站点调用会返回404或空列表。 - 修复方法:将请求前缀替换为目标文件所在站点的API路径,即
/sites/homePage/_api,再重试文件查询、新增接口即可。
2. 端点大小写、路径格式问题
SharePoint REST API对端点、参数大小写敏感,你现有请求存在2个不规范点:
- 文件操作端点的
Files首字母需要大写,将/files/add修改为/Files/add - 标准服务器相对路径必须以
/开头,将你接口中路径参数从'sites/homePage/xxx'修改为'/sites/homePage/xxx'重试
3. 库权限继承中断
你配置的租户级完全控制权限仅作用于默认继承权限的资源,如果目标文档库/文件夹手动中断了权限继承,需要单独给你的应用账号授予库级别的编辑权限:
- 进入目标文档库的设置页面,找到权限管理,添加你的应用主体,授予编辑/完全控制权限。
4. 请求头缺失
调用文件新增接口时,必须携带正确的请求头,否则也会触发异常:
- 必须携带
X-RequestDigest请求头(通过/_api/contextinfo接口获取) - 新增JSON文件时携带
Content-Type: application/json;odata=verbose - 确认
overwrite=true参数拼写正确
内容的提问来源于stack exchange,提问作者C.J. Morrison
相关产品推荐
相关产品推荐

