如何使用 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>
应替换为您的访问令牌。
因此 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>
应替换为您的访问令牌。