下载Dropbox文件夹中存在的所有.mp4文件

Tiago Martins Peres 李大仁 :

一旦有了访问令牌,就可以使用APIDropbox下载文件,这很简单。

然后,使用shared_get_shared_link_file方法可以简单地运行

import dropbox
dbx = dropbox.Dropbox("ACCESS_TOKEN")
#dbx.users_get_current_account()
with open("test1.mp4", "wb") as f:
    metadata, res = dbx.sharing_get_shared_link_file("https://www.dropbox.com/s/kowz06jo7i3xyv2/you_saved_me.mp4?dl=0")
    f.write(res.content)

如您在URL中看到的,/ s /表示我们正在处理一个文件。

问题是,有时它不是一个文件,而是文件所在的文件夹,因此链接将包含/ sh /

如何才能一一下载特定文件夹中的所有.mp4文件(不带.zip)?

作为参考,创建了一个包含三个.mp4文件的文件夹-https://www.dropbox.com/sh/r85vzhq0xxa146s/AAASRlyR-C9ITAd0Cww0Sr9Za?dl =0

其中包含多个.mp4文件的Dropbox文件夹

格雷格:

如果您具有指向包含文件的文件夹的共享链接,而不仅仅是指向特定文件的共享链接,则可以使用files_list_folderfiles_list_folder_continue列出该文件夹的内容。您可以通过在shared_link参数中传递URL来实现files_list_folder

结果将包含有关内容的信息,例如name每个内容的信息

然后,您可以使用它来构建path传递sharing_get_shared_link_file以下载每个所需的文件。

根据您现有的代码和URL,这看起来像这样:

import dropbox

dbx = dropbox.Dropbox("ACCESS_TOKEN")

shared_link = dropbox.files.SharedLink(url="https://www.dropbox.com/sh/r85vzhq0xxa146s/AAASRlyR-C9ITAd0Cww0Sr9Za?dl=0")

listing = dbx.files_list_folder(path="", shared_link=shared_link)
# todo: add implementation for files_list_folder_continue

for entry in listing.entries:
    if entry.name.endswith(".mp4"):
        with open(entry.name, "wb") as f:
            # note: this simple implementation only works for files in the root of the folder
            metadata, res = dbx.sharing_get_shared_link_file(url=shared_link.url, path="/" + entry.name)
            f.write(res.content)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章