Sppull库下载SharePoint文件返回空数组问题求助
执行Sppull下载代码后返回空数组,但SharePoint目标文件夹内确实存在待下载文件。
代码示例
const context = { siteUrl: 'https://<tenant>.sharepoint.com', creds: { username: "<username>@<tenant>.onmicrosoft.com", password: "***", online: true } }; const options2 = { spRootFolder: "Shared%20Documents/docverify", dlRootFolder: "./docverify" }; SPPull.download(context, options2) .then((downloadResults) => { console.log("Files are downloaded", downloadResults); console.log("For more, please check the results", JSON.stringify(downloadResults)); }) .catch((err) => { console.log("Core error has happened", err); });
执行输出
Files are downloaded [] For more please check the results []
补充信息
SharePoint目标文件夹Shared Documents/docverify内存在待下载文件(截图显示文件夹中有文件)。
排查与解决方法
- 修正路径编码:将
spRootFolder中的%20替换为空格,使用"Shared Documents/docverify",部分Sppull版本对编码后的路径解析存在兼容问题。 - 验证账号权限:确认使用的账号对目标SharePoint文件夹有读取权限,手动登录SharePoint验证能否访问并下载文件。
- 补全站点路径:若文件存放在子站点中,需在
spRootFolder前添加站点相对路径,例如"/sites/[站点名称]/Shared Documents/docverify"。 - 开启调试日志:在
options2中添加verbose: true参数,输出详细请求日志,排查路径解析或权限相关问题:const options2 = { spRootFolder: "Shared Documents/docverify", dlRootFolder: "./docverify", verbose: true }; - 显式设置文件过滤规则:添加
fileExtensions: ["*"]参数强制下载所有类型文件,避免隐含过滤规则导致无文件匹配:const options2 = { spRootFolder: "Shared Documents/docverify", dlRootFolder: "./docverify", fileExtensions: ["*"] }; - 更新Sppull版本:执行
npm update sppull升级到最新版本,旧版本可能存在已知的路径解析或API调用bug。
内容的提问来源于stack exchange,提问作者Astha Yadav
相关产品推荐
相关产品推荐

