使用Curl/Wget自动从sharepoint下载文件/文件夹

使用Curl/Wget自动从sharepoint下载文件/文件夹,sharepoint,curl,ssl,download,wget,Sharepoint,Curl,Ssl,Download,Wget,我一直在尝试使用Curl和wget从Sharepoint下载文件。我计划把它作为每天自动运行的脚本,并从URL下载文件 我尝试用下面的命令使用CURL curl -O --user Myusername:Mypassword https://OurDomain.sharepoint.com/_XXX&file=IPS_cleaned.xlsx&action=default 但它给了我关于SSL连接的错误。我知道curl7.35中存在一些bug,所以我把它降到了7.22。但还是给

我一直在尝试使用Curl和wget从Sharepoint下载文件。我计划把它作为每天自动运行的脚本,并从URL下载文件

我尝试用下面的命令使用CURL

curl -O --user Myusername:Mypassword https://OurDomain.sharepoint.com/_XXX&file=IPS_cleaned.xlsx&action=default

但它给了我关于SSL连接的错误。我知道curl7.35中存在一些bug,所以我把它降到了7.22。但还是给了我同样的错误

我还尝试使用Wget

wget --user=Myusername --password=MyPassword --no-check-certificate https://OurDomain.sharepoint.com/_XXX&file=IPS_cleaned.xlsx&action=default
但它仍然给了我错误——无法建立SSL连接

有人能告诉我怎样才能完成任务吗

更新

我能够解决CURL中的错误。下面是我发出的命令

curl -O -L --sslv3 -A "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13" --user Myusername:Mypassword 'https://OurDomain.sharepoint.com/_%7BB21r-9CA2-345DEF%7D&file=IPS_cleaned.xlsx&action=default'
现在它下载的是一个文件,当我打开它时,它会显示Sharepoint的登录页面。它不会下载实际的excel文件


有什么原因吗?

我自己也在努力解决同样的问题,而且我的方式不是那么自动,而是很方便,每天都要登录

  • 使用浏览器登录Sharepoint
  • 导出cookie
  • 运行以下命令

    wget --cookies=on --load-cookies cookies.txt --keep-session-cookies --no-check-certificate -m https://yoursharepoint.com 
    

  • 文件下载得很好

    与Zylug给出的答案类似,使用cURL:

    您可以使用cookies.txt浏览器扩展名导出登录cookie:

    然后使用以下代码:

    curl -b cookie.txt https://OurDomain.sharepoint.com/_XXX&file=IPS_cleaned.xlsx&action=default
    
    在某个时刻,您的Sharepoint会话将过期(不确定需要多长时间),您将需要一个新的cookie文件


    编辑:如果恶意用户获取了您的cookie.txt,他们可能会进入您的SharePoint帐户,因此请确保其安全。

    捕获会话ID等链接的Firefox插件。。它还提供了一个可以粘贴到控制台中的curl或wget命令

    如果有人有更好的建议,请告诉我

    它为您提供了一个curl或wget命令,其中包含标题、cookies和所有内容,并在下载对话框的右侧提供了一个“复制到剪贴板”按钮

    下载网址:

    参考资料:

    请使用rclone

    从下载并安装最新版本

    第一个选项:使用OneDrive访问SharePoint网站/个人文件夹。此选项将帮助您上载大型文件

    1.使用
    rclone config
    命令创建rclone配置

    2.选择“新建远程”并给出名称

    3.选择云存储OneDrive

    4.将客户ID和机密保留为空

    5.编辑高级配置:n

    6.远程配置:使用自动配置:y

    7.在浏览器上打开URL并访问rclone

    8.选择个人/共享站点URL选项

    8a.共享站点URL选项您必须提供站点URL。ie

    9.选择个人/文件驱动器。如果您在第8步中选择了共享站点URL选项,文档驱动器将显示

  • 保存配置并退出
  • 配置文件的内容如下所示。如果选择个人选项,则驱动器类型将为个人

    [onedrive]
    type = onedrive
    token = 
    drive_id = 
    drive_type = documentLibrary
    
    第二个选项:在此选项中,最多可以上载2 GB大小的文件

    1.使用
    rclone config
    命令创建rclone配置

    2.选择“新建远程”并给出名称

    3.选择云存储WebDAV

    4.提供网站URL、用户名和密码

    5.保存并退出

    配置文件的内容如下所示。密码将采用加密格式

    vim/root/.config/rclone/rclone.conf

    [sharepoint]
    type = webdav
    url = https://sharepoint.com/sites/SiteName/Documents
    vendor = sharepoint
    user = 
    pass = 
    
    从SharePoint下载文件


    rclone copy--忽略时间--忽略大小--verbose sharepoint:SourceFolder/file.txt DestFolder

    另一个可能的解决方案是获取sharepoint链接并将“?”后面的文本替换为download=1:

    这:

    变成这样:

    现在,您可以:

    wget https://my.sharepoint.com/:u:/g/XXX/XXXX-bunchofRandomText?download=1
    

    *注意,本例使用了一个文件和一个链接,任何具有该链接的人都可以访问该文件(无需凭据)

    在链接末尾使用wget adding&download=1

    wget“[yourlink]&下载=1”


    它将以[yourlink]字符串作为名称下载,然后在后面加上正确的名称。

    供使用CURL在Sharepoint上下载文件的任何人使用“有链接的任何人”下载选项。以下是我下载时必须遵循的步骤。基本上,您必须使用共享链接中的cookie,然后从其他下载链接下载文件,而这些下载链接并不容易为您提供

    当为“共享链接”发送CURL命令时,它返回302消息、前向链接和cookie。如果我们保存cookie并使用它点击“下载”链接,我就能下载文件。基本上,微软使用最初的“共享链接”将cookie发送到浏览器,然后重定向到他们的“查看文件”网站。在该网站上,您需要使用提供的cookie(身份验证),并选择下一个功能(屏幕查看、打印、下载等)。当你点击下载按钮时,你点击了一个不同的链接。我可以通过访问“查看页面”网站上的文件/链接,打开开发人员工具,并在点击下载时观看浏览器跟随的链接来找到此链接。然后可以为每个文件复制该链接。如果我们将该下载链接与cookie一起使用,我们就可以下载该文件

    curl-i-c cookies.txt共享链接

    curl-o docsdownload.pdf-b cookies.txt下载链接

    共享链接例如:


    下载链接Ex:

    “但它给了我有关SSL连接的错误”-您需要做得更好。返回的实际错误是什么?运行
    echo“get/HTTP/1.1”| openssl s_client-connect:
    ,您会得到什么?@jww-我能够解决该错误。但被困在其他地方。问题更新这是使用终端从SharePoint或其他任何地方下载文件的最简单方法。谢谢你,伙计!谢谢你。需要注意的是,在int