# 前言

记录在 windows 下 OneDrive SharePoint 下载的两种办法 ,并且利用到 Aria2 下载器

  • 油猴脚本 onedrive - 文件下载直链

  • python 脚本 OneDriveShareLinkPushAria2

# 启动 Aria2

Aria2 下载器
解压后获得 Aria2 的文件夹
免安装,直接执行 aria2.exe 文件

图形化界面 aria2Ng/index.html

踩坑
默认下载内容中有 torrent 种子文件时,会自动下载
不需要的话修改,修改配置文件 aria2.conf
当下载的是一个种子 (以.torrent 结尾) 时,自动开始 BT 任务,默认:true
follow-torrent=false

# 油猴脚本

  • 首先要给浏览器安装一个的拓展程序 TamperMonkey Beta (油猴)
  • 然后 Greasy Fork 脚本网站中找到 onedrive - 文件下载直链

使用方便,但是不能区分文件夹
onedrive - 文件下载直链
获得 OneDrive(Sharepoint,支持世纪互联) 文件下载直链的 TamperMonkey 插件。支持 IDM 批量下载、Aria2 推送下载

# python 脚本

OneDriveShareLinkPushAria2

ShareLink 分享的资源多,但是没法像百度网盘一样直接保存到自己的网盘中,下载内容多的时候也麻烦
这个脚本,通过把下载内容推送到 Aria2,并且包含目录层级
从 OneDrive 或 SharePoint 共享链接提取下载 URL 并将其推送到 aria2,即使在无图形界面的系统中 (如 Linux) 依然可以使用。

下载完成后,需要准备好 python 环境
具体使用就不介绍了,除了分享链接,都是使用默认配置

使用过程中 遇到下载的内容只有 507b
看 issues 是请求频繁问题
我是在推送之前增加了一秒延迟
# todo 下就是我加的代码

大致在 main.py 的 326 行

import time
# 省略部分代码
        if i['FSObjType'] == "1":
            # 省略部分代码
        else:
            # todo
            if fileCount + 1 == min(num):
                time.sleep(1)
            if fileCount > max(num):
                break
            if num == [0] or (isinstance(num, list) and fileCount in num):
                # todo
                time.sleep(1)
                print("\t" * layers, "文件 [%d]:%s\t独特ID:%s\t正在推送" %
                      (fileCount, i['FileLeafRef'], i["UniqueId"]))
                # 省略部分代码
                # exit(0)
            else:
                print("\t" * layers, "文件 [%d]:%s\t独特ID:%s\t非目标文件" %
                      (fileCount, i['FileLeafRef'], i["UniqueId"]))
更新于 阅读次数