2012-11-18 17 views
9

我想用我的sharepoint登錄憑證從linux上傳文件到sharepoint。 我使用cURL實用程序來實現此目的。上傳成功。如何使用curl自動上傳並檢入文件以共享點?

使用的命令是:curl --ntlm --user username:password --upload-file myfile.txt -k https://sharepointserver.com/sites/mysite/myfile.txt -k選項用於克服非安全SharePoint站點的證書錯誤。

但是,此上傳的文件顯示在我的登錄名中的「已簽出」視圖(綠色箭頭)中。 因此,該文件對於其他登錄用戶不存在。

我的登錄有寫訪問權限的共享點。

有關如何使用cURL「檢入」此文件與sharepoint的任何想法,以便可以從任何人的登錄中查看該文件?

回答

1

我現在沒有捲曲可供測試,但您可能可以通過以下信息來設計一些東西。 - 標識當前列表的GUID

列表

入住和退房手續由/_layouts/CheckIn.aspx

該頁面有如下查詢字符串變量處理。

文件名稱 - 帶擴展名的文件的名稱。

來源 - 庫中allitems.aspx頁面的完整網址。

我能夠得到CheckIn.aspx頁面正確加載,只使用FileName和Source參數,並省略List參數。這很好,因爲你不必找出查找List GUID的方法。

的CheckIn.aspx頁回發到自身與控制簽入下面的表格參數:

回傳 - 布爾值設置爲true。

CheckInAction - 字符串設定爲ActionCheckin

KeepCheckout - 設置爲1,以保持結賬和0到

CheckinDescription不斷檢查 - 在文本字符串

調用此捲曲像這樣

curl --data「PostBack = true & CheckinAction = ActionCheckin & KeepCheckout = 0 & CheckinDescription = SomeTextForCheckIn的」 http:// {您的服務器和網站} /_layouts/checkin.aspx?Source= {完整URL庫} /表格/ AllItems。ASPX &的FileName = {DOC和分機}

正如我所說,我沒有捲曲測試,但我得到這個使用作曲家標籤

工作在提琴手2,我現在捲曲嘗試這一點,有一個問題讓它工作。 Fiddler以POST的身份執行請求。如果您嘗試以GET請求的方式執行此操作,您將收到500錯誤,指出SPWeb的AllowUnsafeUpdates屬性將不允許通過GET進行此請求。發送請求作爲POST應該糾正這一點。

編輯我目前經歷的DotPeek反編譯的checkin.aspx源,看到了ActionCheckin參數,可能是相關的,如ActionCheckinPublish和ActionCheckinFromClientPublish一些附加選項。我會用更多的發現來更新這個。該頁面位於Microsoft.SharePoint.ApplicationPages.Checkin中,供任何感興趣的人使用。

0

以上回答Junx是正確的。但是,Filename變量不僅是文檔的文件名和擴展名,還應包含庫名稱。我能夠通過以下方式獲得此功能。

實施例:http://domain/_layouts/Checkin.aspx?Filename=Shared Documents/filename.txt

相關問題