【问题标题】:Dropbox Python API: download public Dropbox folderDropbox Python API:下载公共 Dropbox 文件夹
【发布时间】:2017-06-01 18:25:57
【问题描述】:

我正在使用 Dropbox 的 Python API。我的最终目标是,给定一个公共保管箱文件夹的链接(未保存在我的 Dropbox 帐户中),我的程序可以将每个图像下载到本地桌面文件夹。

许多 Dropbox API 调用都需要路径。我目前正在通过连接文件夹 ID 和名称来构建路径,如下所述:“可以使用斜杠构建相对于文件夹 ID 的路径(例如,'id:abc123xyz/hello.txt')”。为此,我向/get_shared_link_metadata 发送一个帖子请求以接收 ID 和名称。

悬停,当我尝试下载时(通过以下代码):

with open("/Users/______/Desktop/ok.jpeg", "wb") as f:
    metadata, res = dbx.files_download(path='id:jSheWaU4yeYAAAAAAAADHw/DSC_0190.JPG')
    f.write(res.content)

我收到此错误:

dropbox.exceptions.ApiError: ApiError('6c829586fd97ebc6e18aa40336e3aa94', 下载错误('路径', LookupError('not_found', None)))

任何见解将不胜感激!谢谢。

【问题讨论】:

    标签: path python-requests dropbox-api


    【解决方案1】:

    这是构造相对于父文件夹 ID 的文件路径的有效语法。

    此错误表明此路径在已连接用户的帐户中不存在。在这种情况下需要检查的几件事:

    • 如果id:jSheWaU4yeYAAAAAAAADHw是文件的ID还是父文件夹的ID?如果是文件本身的 ID,则无需附加文件名,而应仅提供 id:jSheWaU4yeYAAAAAAAADHw
    • 已连接用户帐户中的该路径是否有内容?确保您具有正确的文件名(假设 id:jSheWaU4yeYAAAAAAAADHw 是父文件夹的 ID),该路径中有内容,并且您正在查看正确的帐户。

    【讨论】:

    • 我实际上是在尝试下载不在连接用户帐户中的公用文件夹,这就是为什么我不知道将什么作为它们的“路径”。我刚刚修改了帖子中的语言以使其更加清晰。
    • files_download 方法只能访问已连接用户帐户中的文件。您可以改为使用 sharing_get_shared_link_file 从共享链接下载文件。
    • 我已经尝试过sharing_get_shared_link_file,但我收到错误“shared_link_is_directory”,因为该函数仅适用于文件对象。给定文件夹的 URL,我正在尝试访问文件夹中的文件。这里的难点在于,所有与在文件夹中搜索相关的功能都假定该文件夹在已连接用户的帐户中,并且需要该文件夹的路径。
    • 如果链接是针对文件夹的,可以使用sharing_get_shared_link_filepath参数指定文件夹内的文件。
    • 感谢您的澄清。如何获取每个文件夹中的文件名列表,以便生成特定文件的路径?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-14
    相关资源
    最近更新 更多