我一直在尝试使用Curl和wget从Sharepoint下载文件。我打算将它作为脚本,每天自动运行并从URL下载文件。
我尝试使用CURL和以下命令
curl -O --user Myusername:Mypassword https://OurDomain.sharepoint.com/_XXX&file=IPS_cleaned.xlsx&action=default
但是它给了我关于SSL连接的错误。我知道CURL 7.35中存在一些现有的错误所以我把它降级到了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文件。
任何原因?
答案 0 :(得分:2)
我自己也遇到了同样的问题,并且每天登录时都采用了不那么自动但非常方便的方式。
运行以下命令。
wget --cookies=on --load-cookies cookies.txt --keep-session-cookies --no-check-certificate -m https://yoursharepoint.com
文件下载得很好。
答案 1 :(得分:1)
类似于Zyglute给出的答案,使用cURL:
您可以使用cookies.txt Chrome扩展程序导出您的登录Cookie:https://chrome.google.com/webstore/detail/njabckikapfpffapmjgojcnbfjonfjfg
然后使用以下代码:
curl -b cookie.txt https://OurDomain.sharepoint.com/_XXX&file=IPS_cleaned.xlsx&action=default
在某些时候,您的Sharepoint会话将过期(不确定需要多长时间),并且您将需要一个新的cookie文件。
编辑:如果恶意用户获取了您的cookie.txt,他们可能会进入您的SharePoint帐户,因此请务必确保其安全。
答案 2 :(得分:1)
对此的另一种可能的解决方案包括获取共享点链接并在“?”之后替换文本。下载= 1:
此: https://my.sharepoint.com/:u:/g/XXX/XXXX-bunchofRandomText?e=kRlVi
成为: https://my.sharepoint.com/:u:/g/XXX/XXXX-bunchofRandomText?download=1
现在,您可以:
wget https://my.sharepoint.com/:u:/g/XXX/XXXX-bunchofRandomText?download=1
*请注意,此示例使用了一个文件和一个链接,任何具有链接的人都可以访问该文件(无需凭据)
答案 3 :(得分:1)
对于任何使用CURL通过“下载链接的人”下载选项在Sharepoint上下载文件的人。以下是我必须遵循的下载步骤。本质上,您必须使用共享链接中的cookie,然后从它们不容易为您提供的其他下载链接中下载文件。
在发送用于“共享链接”的CURL命令时,它将返回302消息,前向链接和cookie。如果我们保存该cookie并使用它单击“下载”链接,则可以下载文件。本质上,Microsoft使用初始的“共享链接”将cookie发送到浏览器,然后重定向到其“查看文件”网站。在该网站上,您需要使用提供的cookie(身份验证),然后选择下一个功能(在屏幕上查看,打印,下载等)。当您单击下载按钮时,您将单击其他链接。我可以通过转到“查看页面”网站上的文件/链接,打开开发人员工具以及在单击下载时观看浏览器跟随的链接来找到此链接。然后,您可以为每个文件复制该链接。如果我们将下载链接与Cookie一起使用,则可以下载文件。
curl -i -c cookies.txt 共享链接
curl -o docsdownloaded.pdf -b cookies.txt 下载链接
共享链接,例如:https://tenant.sharepoint.com/:b:/s/Folder/EdNUf4xAVzFJgBoO0MqkfppR5tgobxLrmCnRqU4LFJQ?e=rOGNSD
答案 4 :(得分:0)
Firefox插件,用于捕获带有会话ID等的链接。它提供了一个命令,您可以将其粘贴到控制台中以进行curl或wget。
如果有人有更好的建议,请告诉我。
在下载对话框中,它为您提供了一个包含标题,cookie和所有内容的curl命令,并带有“复制到剪贴板”按钮。
答案 5 :(得分:0)
请使用rclone
apt install rclone
或从https://rclone.org/downloads下载最新的
添加凭据
vim /root/.config/rclone/rclone.conf
[sharepoint]
type = webdav
url = https://sharepoint.com/sites/SiteName/Documents
vendor = sharepoint
user =
pass =
从SharePoint下载文件。
rclone sync --progress --ignore-size sharepoint:SourceFolder/file.txt DestFolder
答案 6 :(得分:0)
使用wget在链接末尾添加&download = 1。
wget“ [您的链接]&download = 1”
将以[yourlink]字符串作为名称进行下载,然后以正确的名称下载mv。