如何使用 wget 从 Onedrive 下载文件和文件夹?

如何使用 wget 从 Onedrive 下载文件和文件夹?

如何使用wget从Onedrive下载文件? (以及批处理文件和整个文件夹,如果可能的话)

答案1

2021 年 4 月更新:此解决方案似乎不再适用于 ONEDRIVE FOR BUSINESS。

有一种方法对我有用(基于如何直接链接 OneDrive 文件

  1. 右键单击您有兴趣下载的文件(从 Web 界面),然后选择嵌入。

  2. “生成 HTML 代码以嵌入此文件”

  3. 复制 src 中包含的部分""就是您的链接。这看起来像 <https://onedrive.live.com/embed?cid=6EBB03E38A53ED3E& resid=6EBB03E38A53ED3E%21116&authkey=AC4lDqtLG8LqfiA>。

  4. embed用。。。来代替download。这看起来像https://onedrive.live.com/download?cid=6EBB03E38A53ED3E&resid=6EBB03E38A53ED3E%21116&authkey=AC4lDqtLG8LqfiA

  5. 使用以下语法将其输入wget(需要引号):

     wget --no-check-certificate "https://onedrive.live.com/download?cid=6EBB03E38A53ED3E&resid=6EBB03E38A53ED3E%21116&authkey=AC4lDqtLG8LqfiA"
    
  6. 享受。

答案2

生成共享链接并将“&download=1”附加到其末尾。

例如,如果链接是“https://some.host/:z:/x/personal/some_user/123456asdf?e=12345

然后

wget "https://some.host/:z:/x/personal/some_user/123456asdf?e=12345&download=1"

答案3

使用 Chrome(但 Firefox 可能也可以)。

  1. 打开开发工具
  2. 单击下载按钮。
  3. 下载但立即取消
  4. 打开 DevTools 中的“网络”选项卡。在 DevTools 中搜索“Zip?authKey=”并将其打开(单击)。这是一个 POST 请求。
  5. 单击底部“表单数据”右侧的“查看源”。
  6. 构造命令如下:

 

wget --post-data='<raw form data>' '<Download URL>'

或者:

wget --post-data='resIds=xxx&canary=yyy&authkey=zzz' 'https://cid--foobar.users.storage.live.com/downloadfiles/V1/Zip?authKey=zzz'

这甚至可以在不同的主机(具有不同的 IP 地址)上运行。

答案4

如果您想下载整个公开共享文件夹(未经授权!):一死

它使用 wget 进行一些 API 调用,然后递归下载文件。奖励:完成文件的 sha1 检查。

共享点现在也支持,但它有点棘手(它当前从驱动器获取的文件比链接显示的文件多)。主要问题是 API 结构略有不同,而且会话令牌会在 1 小时后过期,但它也已解决。它们似乎还设置了一些速率限制,因此不要启动太多并行下载。

该脚本可以使用参数提取现成的wget命令-w

PS:如果您有兴趣了解更多有关 Web API 的信息,我将简要介绍该过程。

相关内容