我正在尝试找到最快(读取最佳性能)的方式来检索授权用户的收件箱文件夹,从" /"路径。我打开使用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)
是否有任何人可以快速获取所有文件夹和子文件夹?
答案 0 :(得分:0)
使用/delta
绝对是最快的方法。请参阅https://www.dropbox.com/developers/blog/69/efficiently-enumerating-dropbox-with-delta。
那就是说,对于80,000个条目,五分钟听起来有点长。我本来期望更多的是一到两分钟,所以可能值得研究一下这个时间的去向(例如,每次通话拨打了多少电话以及有多少条目回来)。