到OneDrive文件的直接下载链接?

16
一个OneDrive可共享的链接如下:https://1drv.ms/w/s!AqmFiI7maXrRgT7PGcK_7JyZlBco。我该如何获取直接下载链接版本呢? 我知道对于一个 onedrive.live/redir?<...> 链接,我只需将“redir”替换为“download”,但是对于像上面那样的链接,我该怎么做呢?谢谢。
2个回答

11

你也可以在你的.bashrc文件中添加一个简单的函数来实现同样的功能:

onelink() { echo -n "$1"|base64|sed "s/=$//;s/\//\_/g;s/\+/\-/g;s/^/https:\/\/api\.onedrive\.com\/v1\.0\/shares\/u\!/;s/$/\/root\/content/"; }

结果是相同的:

$ onelink 'https://1drv.ms/w/s!AqmFiI7maXrRgT7PGcK_7JyZlBco'
https://api.onedrive.com/v1.0/shares/u!aHR0cHM6Ly8xZHJ2Lm1zL3cvcyFBcW1GaUk3bWFYclJnVDdQR2NLXzdKeVpsQmNv/root/content

在Win 10上粘贴到Git Bash时按预期工作。 - tbeu
我不得不对我的shell进行小修改。我使用的是Apline Linux并安装了bash shell。由于缺少-r开关,正则表达式出现错误提示“sed:bad regex '+': Repetition not preceded by valid expression”,直到我添加-r开关到sed中才解决了问题。谢谢! - John Grant
这不适用于 https://onedrive.live.com/?authkey=%21AOaPhONxGCKIlrg&cid=910FC0C1DD8E9B39&id=910FC0C1DD8E9B39%21163&parId=910FC0C1DD8E9B39%21104&o=OneUp - HappyFace
@HappyFace,你的链接已经提供了文件的直接链接:https://m7bcfg.db.files.1drv.com/y4mTguy9KYeKVM8zeNZOJZgfW7-NJ5kiiLwqEmV9X8MALN1fC4XeVOa0YJKiKR7Di_Z_aoUap3SmvhC4mjdhI8WNsZc_TOF5HGJ4v2Um2I7RvYKHDUlM1kLyG2M6AgnuTRnKGiqDvuIcRLVQ5RiAGbI0SNr3mriWKXFbE8jA4JVQL2f1AnPTlfDNs6USNlu5tF4twQmvEvuntitakYrGhGUHw? - DonJ

9

对不起,请问您是怎么得到那个链接的?该链接使用的是 sharingUrl = "https://onedrive.live.com/redir?resid=1231244193912!12&authKey=1201919!12921!1"。这与我拥有的链接 https://1drv.ms/w/s!AqmFiI7maXrRgT7PGcK_7JyZlBco 不同。 - ThePumpkinMaster
上述URL中的“u!asfdjlasdkfjsa”段实际上是您的URL的Base64编码版本。请参阅我引用的说明,它应该解释了这个过程。 - Brad
8
这里提供的链接(http://rextester.com/QNSY6325)将有助于按照OneDrive API文档中的说明(https://github.com/OneDrive/onedrive-api-docs/blob/master/shares/shares.md)构建类似的URL。 - CAMOBAP
很遗憾,提供的指令页面已经不存在了。 - Eric Tobias
感谢您指出这一点 @Eric,我已经更新了链接。它调用了Microsoft Graph端点,但是同样的模式也可以在api.onedrive.com上使用,只需要进行一些小的调整(如主机名等)。 - Brad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接