Что я хотел бы сделать, так это построить дерево из API Dropbox для заданного пути с общими ссылками для каждого пути, используя привязки 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']
})
Так я думаю у меня возникают проблемы, выяснить, как получить эти пути вложенными. Довольно мне здесь нужна рекурсивная функция, но я не могу это понять.
HTTP-документы для/delta содержат дополнительную информацию о возвращенных данных: https://www.dropbox.com/developers/core/docs#delta И это сообщение в блоге, хотя и на Python, может быть полезным: https : //blogs.dropbox.com/developers/2013/12/efficiently-enumerating-dropbox-with-delta/ – Greg
'/ delta' - это, безусловно, способ перечислить файлы, но вам все равно нужно создать ссылку на общий ресурс для каждого файла, правильно? Это будет медленная часть. – smarx
Я думаю, вы, ребята, пропустили тег python, поэтому я отредактирую, чтобы сделать это более понятным. –