【问题标题】:How to auto upload and check in the files to sharepoint using curl?如何使用 curl 自动上传和签入文件到共享点?
【发布时间】:2012-11-06 16:56:30
【问题描述】:

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

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

但是,这个上传的文件显示在我登录后共享点的“已签出”视图(绿色箭头)中。 因此,其他登录的用户不存在此文件。

我的登录拥有对 sharepoint 的写入权限。

关于如何将此文件“签入”到与 cURL 共享点以便任何人都可以登录查看该文件的任何想法?

【问题讨论】:

    标签: sharepoint curl


    【解决方案1】:

    我关于 Performing multiple requests using cURL 的问题有一个使用 bash 和 cURL 的非常全面的示例,尽管它不得不为每个请求重新输入密码。

    【讨论】:

      【解决方案2】:

      Junx 的上述回答是正确的。但是,Filename 变量不仅是文档文件名和扩展名,还应该包括库名。我能够使用以下方法使其正常工作。

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

      【讨论】:

        【解决方案3】:

        我现在没有可用的 curl 来测试,但你也许可以根据以下信息做出一些调整。

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

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

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

        FileName - 带有扩展名的文件的名称。

        来源 - 库中 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={Full Url到库}/Forms/AllItems.aspx&FileName={Doc And Ext}

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

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

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

        【讨论】:

          猜你喜欢
          • 2023-04-08
          • 2015-09-18
          • 2014-09-15
          • 2019-11-14
          • 1970-01-01
          • 1970-01-01
          • 2022-01-18
          • 1970-01-01
          相关资源
          最近更新 更多