如何使用curl自动上传和检入文件到sharepoint?

GAu*_*uto 10 sharepoint curl

我正在尝试使用我的sharepoint登录凭据将文件从linux上传到sharepoint.我使用cURL实用程序来实现这一点.上传成功.

使用的命令是:curl --ntlm --user username:password --upload-file myfile.txt -k https://sharepointserver.com/sites/mysite/myfile.txt -k选项用于克服非安全共享点站点的证书错误.

但是,此上传文件显示在我登录的sharepoint中的"签出"视图(绿色箭头)中.因此,对于来自其他登录的用户,此文件不存在.

我的登录名为sharepoint的写访问权限.

有关如何使用cURL"签入"此文件与sharepoint的任何想法,以便可以从任何人的登录中查看该文件?

Jun*_*unx 0

我现在没有可用于测试的curl,但您也许可以根据以下信息制作一些东西。

签入和签出由 /_layouts/CheckIn.aspx 处理

该页面具有以下查询字符串变量:

列表- 标识当前列表的 GUID。

文件名- 带扩展名的文件名。

来源- 库中 allitems.aspx 页面的完整 url。

我只需使用 FileName 和 Source 参数并省略 List 参数就可以正确加载 CheckIn.aspx 页面。这很好,因为您不必找出查找列表 GUID 的方法。

CheckIn.aspx 页面使用以下控制签入的表单参数回发到自身:

PostBack - 布尔值设置为 true。

CheckInAction - 设置为 ActionCheckin 的字符串

KeepCheckout - 设置为 1 以保持结账,设置为 0 以保持签入

CheckinDescription - 文本字符串

像这样在curl中调用它

curl --data "PostBack=true&CheckinAction=ActionCheckin&KeepCheckout=0&CheckinDescription=SomeTextForCheckIn" http:// {您的服务器和站点} /_layouts/checkin.aspx?Source= {库的完整 URL} /Forms/AllItems.aspx&FileName={文档和分机}

正如我所说,我没有curl 来测试,但我使用Fiddler 2 中的Composer 选项卡让它工作

我现在正在尝试使用curl 进行此操作,但在使其正常工作时存在问题。Fiddler 正在以 POST 方式执行请求。如果您尝试以 GET 请求的方式执行此操作,您将收到 500 错误,指出 SPWeb 的AllowUnsafeUpdates 属性不允许通过 GET 进行此请求。以 POST 方式发送请求应该可以纠正此问题。

编辑我目前正在 DotPeek 反编译器中查看 checkin.aspx 源代码,并查看可能相关的 ActionCheckin 参数的一些附加选项,例如 ActionCheckinPublish 和 ActionCheckinFromClientPublish。我将用任何其他发现来更新此内容。对于其他感兴趣的人,该页面位于 Microsoft.SharePoint.ApplicationPages.Checkin。