如何使用 Dropbox python API 获取文件的 link?

How to get the link of a file using Dropbox python API?

因此 Python 版本 "Downloading a file" 时,Dropbox API 很奇怪。它提供有关文件的元数据,但实际上并不下载文件。这是 奇怪的 考虑到他们的 API 文档说 files_download(path) 说它会在刚获得元数据时从 Dropbox 下载文件。

k = dbx.files_get_temporary_link('/' + str(message))

这是将绕过 files_download 的代码行,但是在元数据停止的地方,更多的开始。当运行时,会抛出这个class:

GetTemporaryLinkResult(metadata=FileMetadata(name='buiEKTw.png', id='id:8ZPbLGM5GIAAAAAAAAAACg', client_modified=datetime.datetime(2016, 11, 22, 1, 26, 27), server_modified=datetime.datetime(2016, 11, 22, 1, 26, 27), rev='e5047428b', size=905, path_lower='/buiektw.png', path_display='/buiEKTw.png', parent_shared_folder_id=None, media_info=None, sharing_info=None, property_groups=None, has_explicit_shared_members=None), link='https://dl.dropboxusercontent.com/apitl/1/AAAzE5ljMmZZ8jxjcKAh_uIym9Hy7tfC4Z67zvzMpakZDqhoje2BgXE9bTz1-dyy2QIuQJbJKiVfD1RvY4PI4AS1sPhTDRSgqpXMU7XBasZ_gw5lNEpyGiYM-m5lQDozXf6oP7WAJjb1NqwRlQuPfRHpsJq7PRn4alBddVdzb6MZTyBdlvzd55hcxqhbU3d9o84mOR9qGh3zl6rSzYUWbhr7RoQVscpq2qug-lnTelc9eQ')

我只想要 class/metadata 末尾的 link,但我似乎无法得到它。 link 本身是 280 个字符,加上引号是 282。并且每次获取元数据时元数据都会发生变化。

files_get_temporary_link method returns a GetTemporaryLinkResult。正如 sal 评论的那样,您可以使用 .link 从该对象访问 link ,如下所示:

result = dbx.files_get_temporary_link(filePath)

print(result.link)

注意那个方法returns一个link到文件。如果想直接访问文件内容,可以使用files_download如下图:

这使用 Dropbox Python SDK 从远程路径 /Homework/math/Prime_Numbers.txt 的 Dropbox API 下载文件到本地文件 Prime_Numbers.txt:

import dropbox
dbx = dropbox.Dropbox("<ACCESS_TOKEN>")

with open("Prime_Numbers.txt", "wb") as f:
    metadata, res = dbx.files_download(path="/Homework/math/Prime_Numbers.txt")
    f.write(res.content)

<ACCESS_TOKEN> 应替换为您的访问令牌。