Cia*_*ian 21 python dropbox dropbox-api
我正在构建一个应用程序来自动触发与用户共享的Dropbox文件的下载(共享文件/文件夹链接).这是直截了当地实现对Dropbox的链接文件,概述这里.
不幸的是,这对共享文件夹不起作用.任何人都有我的建议
目前我可以访问网址并进行屏幕抓取以尝试获取内容列表,但链接的Dropbox博客条目中描述的解决方案的优势在于不需要抓取,因此它更加可靠和高效.
Cia*_*ian 20
Dropbox的支持团队只是让我了解了最好的方法:
只需添加?dl=1
到共享链接的末尾即可.那将为您提供共享文件夹的压缩版本.
因此,如果与用户共享的链接https://www.dropbox.com/sh/xyz/xyz-YZ
(或类似,链接到共享文件夹),下载该文件夹的压缩版本只需访问https://www.dropbox.com/sh/xyz/xyz-YZ?dl=1
希望这也有助于其他人.
当通过 python 下载文件的直接共享链接时,我得到的是 html 页面而不是实际的文件内容。改变?dl=1
没有帮助。然后我注意到 wget 正在下载实际文件,即使?dl=0
. 似乎 dropbox 检测到 wget 用户代理并使用文件进行响应,因此Wget/1.16 (linux-gnu)
在 python中将用户代理标头设置为解决了该问题,现在正在正确下载任何 dropbox 共享链接:
headers = {'user-agent': 'Wget/1.16 (linux-gnu)'}
r = requests.get(url, stream=True, headers=headers)
with open(filepath, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
Run Code Online (Sandbox Code Playgroud)