Построить дерево каталогов из Dropbox API
То, что я хотел бы сделать, - это построить дерево из API Dropbox для заданного пути, с общими ссылками для каждого пути, используя привязки Python.
Моя предложенная структура выглядит примерно так:
[
{
'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']
})
Так что, думаю, у меня возникли проблемы с выяснением того, как эти пути вложены. Я уверен, что мне нужна рекурсивная функция, но не могу понять это.