从cURL下载OneDrive文件,因为他们已经更改了URL的构造

Sim*_*eon 2 php curl download onedrive

这是我遇到的问题.在OneDrive更改网址之前,很容易强制从cURL下载文件,但是既然他们已经改变了网址的结构,我就不能使用以前的替换redir的方法了?下载?这就是他们过去的构建方式:

https://onedrive.live.com/redir?resid=
Run Code Online (Sandbox Code Playgroud)

为了让它立即开始下载,我们只需要用这样的下载替换redir

https://onedrive.live.com/download?resid=
Run Code Online (Sandbox Code Playgroud)

这根本就是修复它,但现在网址是这样的:

https://1drv.ms/u/s!AsdMSpdm_dmsadMSda
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是如何从cURL下载文件,即使使用CURLOPT_FOLLOWLOCATION我也不能这样做,只有在强制下载文件时它才有效.提前致谢!

Rya*_*egg 8

有两种选择.执行此操作的"正确"方法是按照https://dev.onedrive.com/shares/shares.htm#encoding-sharing-urls中描述的详细信息对完整的共享URL进行编码,然后构建如下的URL:

https://api.onedrive.com/v1.0/shares/{encodedUrl}/root/content

这将在URL下载共享文件的内容.选项#2是将URL拼接起来并抓取s!以其开头的路径段,并将其与编码的Url放在同一位置:

https://api.onedrive.com/v1.0/shares/s!.../root/content

无论哪种方式,您都可以使用cURL下载文件的内容.