我正试图找到最快(阅读最佳性能)的方式来检索授权用户的dropbox文件夹开始在"/"路径。我愿意使用PHP或Python。
下面是我的代码(PHP):
function db_recursive($dbxClient, $path, $folders=array(), $called=array())
{
$folderMetadata = $dbxClient->getMetadataWithChildren($path);
$called[] = $path;
foreach ($folderMetadata['contents'] as $content)
{
if ($content['is_dir'] == true)
{
if (!isset($folders[$content['path']]))
{
$folders[$content['path']] = $content['path'];
}
}
}
foreach ($folders as $k => $folder)
{
if (in_array($k, $called))
{
continue;
}
else
{
db_recursive($dbxClient, $k, $folders, $called);
}
}
}
遇到的问题:1. 尝试使用delta方法而不是getMetadatawithChildren,但需要5分钟给出大约80,000个条目(相同的结果是否使用PHP或Python)2. 使用getMetadatawithChildren,我遇到了最大的功能级错误(已将其提高到300)
有没有人有快速获取所有文件夹和子文件夹的方法?
使用/delta
绝对是最快的方法。参见https://www.dropbox.com/developers/blog/69/efficiently-enumerating-dropbox-with-delta。
也就是说,5分钟听起来对于80,000个条目来说有点长。我本来预计会有一到两分钟,所以可能值得调查一下时间去了哪里(例如,打了多少个电话,每个电话返回了多少个条目)。