我想要做的是使用 python 绑定,从 dropbox API 为给定路径构建一棵树,并为每个路径提供共享链接。
我建议的结构看起来像这样:
[
{
'path': '/a',
'is_dir': True,
'contents': [
{
'path': '/a/b',
'is_dir': True,
'contents': [etc]
},
{
'path': '/a/readme.txt',
'is_dir': False,
'share_link': 'http://etc'
}
]
},
etc.
]
我有一些主要使用的东西metadata()
但它的速度慢得可怕,因为它需要对每个遍历的目录进行 API 调用。
我想用的是delta()
,这将使我获得一个请求中的每个文件,然后将其构建成一棵树,但我在弄清楚到底如何,特别是如何将路径解析成树时遇到问题。
编辑:我已经意识到每个共享链接都有一个调用,因此我将忽略这些链接并在需要时获取它们。
这是我必须获取到目前为止所需数据的一些代码:
paths = []
for path, metadata in client.delta(path_prefix='/whatever')['entries']:
paths.append({
'path': path,
'is_dir': metadata['is_dir']
})
所以我想我在弄清楚如何嵌套这些路径时遇到了困难。很确定我在这里需要一个递归函数,但不太明白。