Forum Discussion

GFunk's avatar
GFunk
Explorer | Level 3
6 years ago

API Copy/Sync two folders in dropbox account

I have a simple requirement that I'm really struggling to get working.

 

We need to sync up several (100+) directories with their subdirectories (all under the same account). For eg:

 

Source\Dir1\A1\file1.pdf

Source\Dir1\A2\file2.pdf

 

And copy to Dest\Dir1\A1\file1.pdf etc...

 

This works easily via the API if the dest directory doesn't exist:

 

 try {
                    $dropbox->copy($dropboxFolder$destPath);
                } catch (\Exception $e) {
                    $this->copyFolderOnDropboxByFile($dropboxFolder$destPath);
                }

 

However, if it does, it seems I have to go any copy file by file, and then the process becomes EXTREMELY slow and often times out (perhaps running afoul of the API performance limits)

 

We run this process every 5 mins to make sure we are snycing up any straggling files. How can I efficiently run this ONLY when we are sure there are files that have changed/need to be synced?

 

Note: I can't simply delete the dest dir and recopy because there are people who are syncing these dirs to their local Dropbox account and that causes a massive amount of churning. (There could be 100dirs and 5000 files in the extreme case).

 

I'm using the PHP API in Laravel but what I'm after is the *correct* way of doing this. If I coudl simply compare last folder modified date or something simple, I could then only recopy folders that have changed. 

 

What can you suggest?

1 Reply

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.

The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.

If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X, Facebook or Instagram.

For more info on available support options for your Dropbox plan, see this article.

If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!