我正在尝试将文件(PDF)从本地目录上载到SharePoint上的文档库。 我有一个gulp构建系统,它监视文件夹的变化,并运行一个任务,通过gulp-spsave管道PDF流
gulp-spsave很不错,因为它抽象出了一个看起来非常复杂的SharePoint REST界面,我可以提供我的凭据,网址和上传文件夹,剩下的工作就完成了。
但是,我一直得到404.我是SharePoint的新手,并不真正理解URL结构,所以我猜我没有向插件提供正确的信息。
这是文档库的URL(名为DST):
https://{subdomain}.{customdomain}.com/depts/indirectsales/DST/Forms/AllItems.aspx
这是我的一项任务:
gulp.task('upload', function() {
var catalog = paths.output + 'catalog.pdf';
return gulp.src(catalog)
.pipe(spsave({
username: '{user}',
password: '{pass}',
siteUrl: 'https://{subdomain}.{customdomain}.com/depts/indirectsales/',
folder: 'DST'
}));
});
我尝试过siteUrl和文件夹的其他组合无济于事,例如:
siteUrl: 'https://{subdomain}.{customdomain}.com',
folder: 'depts/indirectsales/DST'
有没有人知道给定文档库URL的siteUrl和文件夹的正确字符串是什么?
编辑 :看起来我正在尝试连接到本地Sharepoint 2010安装,而spsave仅适用于2013/2016和SPO。 有谁知道如何使用REST将文件上传到SP 2010中的文档库?
事实证明,我遇到标准REST请求问题的唯一原因是因为我没有使用NTLM对SharePoint进行身份验证。 我能够在节点中使用http-ntlm模块:
httpntlm.post({
url: 'http://domain.com/site/_vti_bin/copy.asmx',
headers: {
'SOAPAction': 'http://schemas.microsoft.com/sharepoint/soap/CopyIntoItems',
'Content-Type': 'text/xml; charset="utf-8"'
},
username: 'user',
password: 'pass',
body: soapEnv,
}, function(err, response) {
//callback
}