如何提取OneDrive文件直链?

原理

  • 原链接:
    https://xxxx-my.sharepoint.com/:x:/g/personal/xx_xx_xx/xxxxxxxxxx
  • 直链:
    https://xxxx-my.sharepoint.com/personal/xx_xx_xx/_layouts/52/download.aspx?share=xxxxxxxxxx(这一种更有效)

    https://xxxx-my.sharepoint.com/:x:/g/personal/xx_xx_xx/xxxxxxxxxx?download=1(这是重定向跳转至直链)

Python实现

我自己编写的一个Python小工具

源码:

# 原理:https://www.skyqian.com/archives/OneDrive-straight.html

import re

def judgeLink(url):
    reg1 = r'https://.+sharepoint\.com'
    reg2 = r'personal/(\w+?)/'
    reg3 = r'.*/(\S+)'
    reg4 = r'com/:(\w):/'

    p1 = re.findall(reg1, url)[0]
    p2 = re.findall(reg2, url)[0]
    p3 = re.findall(reg3, url)[0]

    if '?' in p3:
        p3 = re.findall(r'(\S+?)\?', p3)[0]

    if re.findall(reg4, url)[0] == 'f':
        return "抱歉,你所输入链接分享的是文件夹,直链生成仅对单文件有效。"

    return p1 + '/personal/' + p2 + '/_layouts/52/download.aspx?share=' + p3

if __name__ == "__main__":
    url = input("请输入你的OneDrive单文件分享链接:")
    try:
        url_judged = judgeLink(url)
        print(f"\n>>> {url_judged}")
    except:
        print("\n>>> 请检查你的输入链接是否正确?")

Telegram机器人

  1. 打开机器人 @Complex_1ove_bot
  2. 发送/getOneDriveStraight + 单文件的分享链接

image-20220921213814099

通过搭建目录程序获得直链

OneManager(推荐,支持一键部署)

OneManager的进阶玩法:🔗传送门

ShareList

这个比较个性,可以基于API或者分享链接挂载,个人觉得这种方式会比挂载整个网盘方便管理,也有利于保护其他文件。

sharelist支持Google Drive、OneDrive(包括世纪互联)、天翼云、蓝奏云、GitHub、WebDAV、本地文件等。

Oneindex

基于php,应该是这类项目中最早流行起来的,功能比较完善,但是实测OneDrive个人版有一部分中文目录读不出来(2019年下半年),作者donwa前段时间删除了这个项目,原因未知,链接为他人的备份。

oneindex仅支持OneDrive(个人、企业版或教育版/工作或学校帐户,世纪互联版方法请搜索)。

PyOne

基于Python的项目,个人觉得比oneindex好看一点点,并且很早就支持离线下载,不过跟oneindex一样有读不出目录的问题(2019年下半年)。

PyOne仅支持OneDrive(包括世纪互联)。

OLAINDEX

基于php,没发现前面所说读不出目录的问题。

OLAINDEX仅支持OneDrive(包括世纪互联)。

CuteOne

基于Python,也有php版本,很好看,而且做出了模块化,甚至可以当作电影分享站,不过链接OneDrive个人版有bug导致刷不出缓存,其实很简单,然而作者不打算修的亚子……

CuteOne仅支持OneDrive(包括世纪互联,其中个人版需手动修改文件)。

OneList

Vicer大佬的项目,基于Python,也有go版本,据说可以缓解一些API过度调用的问题,未测试。

OneList仅支持OneDrive(包括世纪互联)。

Goindex

基于js和CF Workers,未测试过,和oneindex同一作者,同样已删库,链接为他人备份。

goindex仅支持Google Drive。

GDIndex

基于js和CF Workers,未测试过。

GDIndex仅支持Google Drive。

Zfile前端 后端

支持阿里云 OSS、FTP、华为云 OBS、本地存储、MINIO、OneDrive 国际 /家庭 /个人版、OneDrive 世纪互联版、七牛云 KODO、腾讯云 COS、又拍云 USS。

Fast.io

这是一个免费的静态空间网站,也可以用来挂载网盘。

Fast.io支持Google Drive、OneDrive、Github、Dropbox、MediaFire、BOX。

JustList

比较简洁,支持OneDrive(国际版、世纪互联)和天翼云盘。

OneDriveFly

仅支持OneDrive,可以部署到QCloud SCF、Aliyun FC、Heroku,计划支持Cloudflare Workers、Google Cloud Functions、Azure Functions。

SuperOne

仅支持OneDrive,内置API,无需申请。

OneindexN

Oneindex的继承版本,加入aria2下载等功能。

YukiDrive

支持OneDrive和Sharepoint,前后端分离。
打赏
评论区
头像
    头像
    徐南木
      

    博主牛逼,刚好是我需要的

文章目录