0

可以使用 curl 使用此问题中提到的以下命令将文件签入到共享点文档库:

curl --ntlm --user username:password --upload-file file.txt https://mysharepointserver.com/sites/mysite/myfile.txt -k

但是如何首先从文档库中签出文件(使用 curl)?

我通过如下传递 SOAPAction checkoutfile 标头和数据尝试了一种方法,但即使服务器返回响应,它也没有效果:'200 OK'

curl --ntlm --user username:password -d @soapdata.xml -H "SOAPAction: http://schemas.microsoft.com/sharepoint/soap/CheckOutFile"  -H "Content-Type: text/xml; charset=utf-8" https://mysharepointserver.com/sites/mysite/myfile.txt -k

soapdata.xml 包含 WSDL 所描述的检出所需的 SOAP 数据。上面的命令是否有问题,或者是否有更简单的方法可以使用 CURL 来执行此操作,例如 checkin case?

4

1 回答 1

3

从一个示例中发现,使用 SOAP 方法,CURL 命令中的 URL 应该是共享点站点 Lists.asmx 的路径,而不是要签出的文件的 URL。文件 URL 只需在 soapdata xml 中的 pageUrl 字段中,如下所示:

curl --ntlm --user username:password -d @soapdata.xml -H "SOAPAction: http://schemas.microsoft.com/sharepoint/soap/CheckOutFile" -H "Content-Type: text/xml; charset=utf-8" -k -v https://mysharepointserver.com/sites/mysite/_vti_bin/Lists.asmx

soapdata.xml 的内容在哪里:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <CheckOutFile xmlns="http://schemas.microsoft.com/sharepoint/soap/">
      <pageUrl>https://mysharepointserver.com/sites/mysite/myfile.txt</pageUrl>
      <checkoutToLocal>true</checkoutToLocal>
      <lastmodified/>
    </CheckOutFile>
  </soap:Body>
</soap:Envelope>
于 2013-07-24T13:55:25.647 回答