OneDrive 直链转换工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
chinacivi
V2EX    分享创造

OneDrive 直链转换工具

  •  3
     
  •   chiacivi 2023-09-28 12:48:41 +08:00 5711 次点击
    这是一个创建于 774 天前的主题,其中的信息可能已经有所发展或是发生改变。

    OneDrive 是微软提供的云存储服务,它可以方便地存储和分享文件。然而,OneDrive 的文件分享链接默认是经过处理的,无法直接通过浏览器下载文件。写了一个单独的 HTML 文件,可以将 OneDrive 的文件分享链接转换为直接下载链接,实现文件的直接下载功能。而且,这个功能可以在本地双击直接运行,也可以通过将文件放到服务器上并通过域名访问。

    实现原理

    该功能的实现原理非常简单,通过 Javascript 代码解析用户输入的 OneDrive 文件分享链接,提取关键信息,并根据提取的信息构造出直接下载链接。然后,将转换后的链接展示给用户,并提供复制功能,方便用户进行操作。

    使用方法

    在本地使用

    1. 将 HTML 代码保存为一个名为onedrive.html的文件。
    2. 双击onedrive.html文件,它会在您默认的浏览器中打开。
    3. 在输入框中输入 OneDrive 文件的分享链接,然后点击”转换并复制链接”按钮。
    4. 转换后的直接下载链接将会在页面上显示出来。您可以点击链接进行下载,或者点击旁边的”复制”按钮将链接复制到剪贴板中。

    通过服务器访问

    1. 将 HTML 代码保存为一个名为onedrive.html的文件。
    2. onedrive.html文件上传到您的服务器上,确保可以通过域名访问到该文件。
    3. 在浏览器中输入http://yourdomain.com/onedrive.html,将会打开转换工具页面。
    4. 输入 OneDrive 文件的分享链接,点击”转换并复制链接”按钮,即可获取直接下载链接。

    使用以上方法,您可以在本地或通过服务器访问转换工具页面,方便地将 OneDrive 文件分享链接转换为直接下载链接。

    希望这个简单的 OneDrive 转直连工具能够帮助您更方便地下载 OneDrive 中的文件!

    演示地址:

    OneDrive 直链转换工具 (onw.cc)

     <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>OneDrive 直链转换工具</title> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 0; } h1 { color: #333; } form { margin-bottom: 20px; } label { font-weight: bold; } input[type="text"], textarea { width: 100%; padding: 5px; margin-bottom: 10px; box-sizing: border-box; } input[type="button"], .copy-button, #copy-all-button { padding: 10px 20px; background-color: #4CAF50; color: #fff; border: none; cursor: pointer; } .result { margin-top: 20px; border: 1px solid #ccc; padding: 10px; background-color: #f9f9f9; } .error { color: #f00; } </style> </head> <body> <h1>OneDrive 直链转换工具</h1> <form> <label for="urls">请输入 OneDrive 单文件分享链接(每行一个):</label><br> <textarea id="urls" rows="5" cols="50" required></textarea><br> <input type="button" value="转换" Onclick="convertAndCopy()"> </form> <script> // 在页面加载时设置输入框的提示文本 window.Onload= function () { var textarea = document.getElementById("urls"); textarea.placeholder = "支持格式:\n 个人版 onedrive: https://1drv.ms/i/s!AnDZHOpvo15********5Wo\n 企业版 onedrive: https://jkwl-my.sharepoint.com/:i:/g/personal/admin_***_com/EcqpkSG0KsFFgQ******KhgBICI_se3pMm***MPQ-0Q?e=kxarnf"; }; // 其他代码... </script> <div id="results"></div> <button id="copy-all-button" Onclick="copyAllLinks()">复制全部</button> <script> function copyText(elementId) { var element = document.getElementById(elementId); var range = document.createRange(); range.selectNode(element); window.getSelection().removeAllRanges(); window.getSelection().addRange(range); document.execCommand("copy"); window.getSelection().removeAllRanges(); } function copyAllLinks() { var allLinks = document.querySelectorAll('.result span'); var allLinksText = []; allLinks.forEach(function (link) { allLinksText.push(link.textContent); }); var allLinksTextString = allLinksText.join('\n'); var tempTextarea = document.createElement('textarea'); tempTextarea.value = allLinksTextString; document.body.appendChild(tempTextarea); tempTextarea.select(); document.execCommand('copy'); document.body.removeChild(tempTextarea); alert('已复制全部链接到剪贴板!'); } function convertAndCopy() { var inputUrls = document.getElementById("urls").value; var urlList = inputUrls.split("\n"); var resultDiv = document.getElementById("results"); resultDiv.innerHTML = ""; var cOnvertedLinks= []; // 用于存储转换后的链接 urlList.forEach(function (url, index) { url = url.trim(); if (url !== "") { try { var cOnvertedLink= judgeLink(url); var resultElement = document.createElement("div"); resultElement.className = "result"; resultElement.innerHTML = '<p><strong>原始链接:</strong><br>' + url + '</p>' + '<p><strong>转换后链接:</strong><br><span id="result-link-' + index + '">' + convertedLink + '</span> <button class="copy-button" Onclick="copyText(\'result-link-' + index + '\')">复制</button></p>'; resultDiv.appendChild(resultElement); convertedLinks.push(convertedLink); // 添加到转换后的链接数组 } catch (e) { var errorElement = document.createElement("p"); errorElement.className = "error"; errorElement.textCOntent= "请检查链接是否正确?"; resultDiv.appendChild(errorElement); } } }); // 自动复制转换后的链接 if (convertedLinks.length > 0) { var cOnvertedLinksText= convertedLinks.join('\n'); var tempTextarea = document.createElement('textarea'); tempTextarea.value = convertedLinksText; document.body.appendChild(tempTextarea); tempTextarea.select(); document.execCommand('copy'); document.body.removeChild(tempTextarea); alert('已自动复制全部转换后链接到剪贴板!'); } } function judgeLink(url) { if (url.startsWith("https://1drv.ms/")) { // 如果是 https://1drv.ms/ 链接,则加上 https://onw.cc/1drv.ms.php?url= return "https://onw.cc/1drv.ms.php?url=" + url; } var reg1 = /https:\/\/.+sharepoint\.com/; var reg2 = /personal\/(\w+?)\//; var reg3 = /.*\/(\S+)/; var reg4 = /com\/:(\w):/; var matches1 = url.match(reg1); var matches2 = url.match(reg2); var matches3 = url.match(reg3); var p1 = matches1[0]; var p2 = matches2[1]; var p3 = matches3[1]; if (p3.includes('?')) { p3 = p3.split('?')[0]; } var matches4 = url.match(reg4); if (matches4[1] === 'f') { return "抱歉,你所输入链接分享的是文件夹,直链生成仅对单文件有效。"; } return p1 + '/personal/' + p2 + '/_layouts/52/download.aspx?share=' + p3; } </script> </body> </html> 
    7 条回复    2025-05-15 15:36:23 +08:00
    aogg
        1
    aogg  
       2023-09-28 14:08:49 +08:00   2
    写成暴力猴脚本啊
    FlashEcho
        2
    FlashEcho  
       2023-09-28 15:39:04 +08:00
    好好好,太有用了
    zliea
        3
    zliea  
       2023-09-28 16:57:58 +08:00
    写成暴力猴脚本+1
    chinacivi
        4
    chinacivi  
    OP
       2023-09-28 18:05:48 +08:00
    @aogg 是需要转换直连,还是识别链接自动下载?
    MinonHeart
        5
    MinonHeart  
       2023-10-09 12:52:28 +08:00
    https://www.hub.moe/laboratory/onedrive-direct-link.html
    分享下 Automator Application(macOS) 脚本
    Leao9203
        6
    Leao9203  
       2024-03-17 01:08:22 +08:00
    有用,200G+的分包终于有办法断点续传了
    blufaux
        7
    blufaux  
       179 天前
    楼主,失效了吗??转换后,访问链接,提示如下:

    无法提取 resid 和 authkey 。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3214 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 11:38 PVG 19:38 LAX 03:38 JFK 06:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86