2013-07-21 4 views
0

this question에서 언급 한 바와 같이 다음 명령을 사용하여 컬을 사용하여 SharePoint 문서 라이브러리에 파일을 체크인 할 수 있습니다 :curl을 사용하여 sharepoint 문서 라이브러리에서 파일을 체크 아웃하는 방법은 무엇입니까?

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

을하지만 어떻게 문서 라이브러리에서 (컬을 사용하여) 먼저 파일을 체크 아웃?

나는 다음과 같이이 SOAPAction의 checkoutfile 헤더와 데이터를 전달하여 한 가지 방법을 시도하지만, 서버가 응답 반환에 있는데도 아무런 영향이 없었다 :

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 체크 아웃에 필요한 SOAP 데이터가 포함 된 '200 OK'를 WSDL에 설명되어 있습니다. 위의 명령에 잘못된 것이 있습니까? 아니면 CURL을 사용하여 체크인과 같은 간단한 방법이 있습니까?

답변

3

example에서 SOAP 접근 방식을 사용하면 CURL 명령의 URL은 체크 아웃 할 파일의 URL이 아닌 Sharepoint 사이트 Lists.asmx의 경로 여야합니다. 다음과 같이 파일의 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> 
관련 문제