列出Dropbox帐户(Dropbox API)的整个文件夹 - >子文件夹结构

时间:2014-07-25 03:55:47

标签: php python-2.7 recursion dropbox-api

我正在尝试找到最快(读取最佳性能)的方式来检索授权用户的收件箱文件夹,从" /"路径。我打开使用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)

是否有任何人可以快速获取所有文件夹和子文件夹?

1 个答案:

答案 0 :(得分:0)

使用/delta绝对是最快的方法。请参阅https://www.dropbox.com/developers/blog/69/efficiently-enumerating-dropbox-with-delta

那就是说,对于80,000个条目,五分钟听起来有点长。我本来期望更多的是一到两分钟,所以可能值得研究一下这个时间的去向(例如,每次通话拨打了多少电话以及有多少条目回来)。