Criar árvore de diretórios a partir da API do dropbox
O que eu gostaria de fazer é construir uma árvore a partir da API do dropbox, para um determinado caminho, com links de compartilhamento para cada caminho, usando as ligações python.
Minha estrutura proposta é mais ou menos assim:
[
{
'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.
]
Eu tenho algo que funciona principalmente usandometadata()
mas é terrivelmente lento, pois precisa fazer uma chamada de API por diretório atravessado.
O que eu gostaria de usar édelta()
, que receberá todos os arquivos em uma solicitação e depois construirá em uma árvore, mas estou tendo problemas para descobrir exatamente como, em particular, como analisar os caminhos em uma árvore.
Edit: E eu percebi que há uma chamada para cada link de compartilhamento, então eu vou omiti-los e obtê-los quando solicitado.
Aqui está um código que eu tenho para obter os dados necessários até agora:
paths = []
for path, metadata in client.delta(path_prefix='/whatever')['entries']:
paths.append({
'path': path,
'is_dir': metadata['is_dir']
})
Acho que estou tendo problemas para descobrir como aninhar esses caminhos. Tenho certeza de que preciso de uma função recursiva aqui, mas não consigo entender direito.