通过REST API将文件上传到SharePoint使用gulp spsave

问题描述:

我试图从本地目录上传文件(PDF)到SharePoint上的文档库。我有一个gulp构建系统,可以监视文件夹的变化并运行管理PDF流的任务,通过gulp-spsave通过REST API将文件上传到SharePoint使用gulp spsave

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进行身份验证。我能够在节点模块中这样做:

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 
}