cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
If you’ve changed your email address, now's the perfect time to update it on your Dropbox account and we’re here to help! Learn more here.

Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Re: files/list_folder/continue

files/list_folder/continue

saeeda
New member | Level 2
Go to solution

Hey,
When calling files/list_folder and the has_more parameter its 'true' we make another call to /list_folder/continue with the new cursor And so on.
The problem that we faced is that the entries for every single request doesn't change, and there is something weird : the cursor is too long!
Our purpose is to collect all the folders, but for one user when I have taken a look at the network I can see more that 1000 calls to list_folder/continue endpoint.

1 Accepted Solution

Accepted Solutions

Здравко
Legendary | Level 20
Go to solution

Hi @saeeda,

As your code is not fully represented, may be something lefts hidden. 🤔


@saeeda wrote:
...
httpService.get('/dropbox/listfolders', {"cursor": cursor})// this endpoint from our server side when the cursor !== '' then call continue
...

...


"then call continue" - Are you sure? It looks like it's not and you are falling in infinite recursion loop. 🤷

In case you are starting from beginning every loop step, then the list is normal to be the same, despite different cursor as result on every query! Be more careful. Check what's inside your 'get' method! Does the end point change as you have declared in comment? 🧐

View solution in original post

5 Replies 5

Здравко
Legendary | Level 20
Go to solution

Hi @saeeda,

Hmm... 🤔 Are you updating your cursor as returned by each "file/list_folder/continue" call or are you using the one received from "file/list_folder" only? 😉

Hope this gives idea.

Greg-DB
Dropbox Staff
Go to solution

@saeeda As Здравко mentioned, please make sure you're using the latest cursor each time, not just the original one. If something still isn't working as expected, please share the details, e.g., the steps to reproduce the issue and the code, so we can take a look.

 

Also, can you clarify what you mean when you say "the cursor is too long"? The "cursor" value returned by /2/files/list_folder[/continue] does not have a guaranteed maximum length, and the length can vary by account, so make sure your app can accept a cursor of any length.

saeeda
New member | Level 2
Go to solution
function continueGetFoldersList(accessToken, cursor) {
httpService.get('/dropbox/listfolders', {"cursor": cursor})// this endpoint from our server side when the cursor !== '' then call continue
.success(function (result) {
createFoldersTree(result.entries, false);// we use this function for filter the folders by .tag key
if (result.has_more) continueGetFoldersList(accessToken, result.cursor);// here we send the updated cursor after success
else loadingFolders = false;
})
...

the result I got:-
{
"entries": [
{
".tag": "file",
"name": ...

},...]
"cursor": "AAGV9oI1_kmtXIGG-ayMBO4Zj_TZzurRm7DwtAUkvEqhhMWVjmiplVOqV5HUI5xhxcfdVDq988TxqCmF9FjcRZcIIWDsPOLBFiIMTstxxmxeOYgh3LM-N2tLXrGZqAn73GJohOYcECoXB8pbalDMTKuBLLNQ1gvhfrdaq7ZDWBlpL0mTYAa2rlGp-g9EpFyqp1WpH9MALUsXWi17cVQu43wc4-LCZJ3N-VP36tSEfhfeohrKL1SAfySr2qEMzH0Wc5MXo4-lrd6wdeaAFmsupxmgIBik52NeSmvZ4JtHwl7zxqDWBMYHF_DlFHLUeLWobXObNsq_SdlawxQOvLEF6fT6ezsYHIf5pDkU4xYSAoacHPsLRbWbCeRb18J8jc2WN7KUUrNXBmKMu6fZ_9ybZ1iUMfbz2mn4vMLXx5RfEU405zSpvO1NaYy5sSiaqVfqLMAgs7gYIzX-orOKGFPNyXKERcGp_rRyAqJfuiS3UOeRF6rp9nrqOFZ2oxeprVlAfSmljtKmfRw_KjvKbFMdBBrbQb_PnpbZnXnsXCcFNgfNUFjvcgyceikL-CPM1IW6xrfY9pYW9iTNjKyd7nSfmFqBdYJ24nJeOYpwP5rtJoJC8d5gguOHxvpL_Ph8cLYHOHeMUG__C7qiUsooklby8cRPjx34QoJtGrOG0g1qPfO8llKInGCq-4xhOLuSjuD8OE1r2khZzkATmB-3kDDG64VSOkybaf-gteyLLHyUENOc_u-GGTZKF03XTRSBIturb5dFcRSsX0CRAuXyWbBk_XueKmSNHSMO4ZJGCVmnlEH3AzYWW7OXUuQN4LbiXIXz81B5l529AQMCM1jdvLVETkSCX2j9GehCxkC4zK1CBreA7b6C6XZAXiuQYXnKyxUys29rvCsJYdm9n3SKrtiCM9hjO3caRjOV9MKm5N-khcGVBJ1wyUb5fhDXl4ZmZ_o1i_Dl15L_yj9LrubwTtjxHNIeD3pym1bhLne6RZvzfHUYGyTwN4ijFfOQ-MwgNs6M5PypTYDV7_dX_bMD_bQZGJl1xlQ-iO2nQbmex2Y8VwX-RHjuUORse6QgimmE1LyrBcM9_ki0muxWeC4s4GDV1QMWicw51NtRqPkXBkvcwwlbGh_Krh_RtkVW7599XrkpA8nid1iX70uS9wAVHN5d_kaIDbeB8Sfh5I1GQcVJg8gdJ2Pv_2nxRlRxpSoJxDALTyvf5TBXNN8RqXrgUD5lNZAVwIYNUvPeWnvIYGAkg8fzZauun0CI_Ksf667GCjPWT-95ylS4wd9iA0IiXQr4DVUIXtAapN_mhcCEUVlz3ivysle0ZGvEfcxin7w2F1PzZJ_TnU-dqSw9fpQbxqFTqY1KSPsxtB7YpjX7WlypXMHqmN5bIIKw_vBEkyoAJC7J9czCe_U2nNQ4zeCiXxRfGt5dYEQjincLIRn6PMyOvjjbtqmCyL5Rh1n_OWumj-TeTcjMiC3T-oSUCpVKM0xJaOrpTkKN4PeuR7-j1uDBlTb6zZcNYIV15RNsbkWOMyQFGWo2ABiiATMtJSWt6hmhXCj9QOHQa2Z-6eae5ZGq6pz9CAx6ezAtvLzEfdlbNwHa_hkkmsHJkv5VdK_gkvqhdxuyFKZxKBMjVRx1rg76hv0od1Wmjeh4emPXISC5YjdPRv8f81fj5m38f1NXWLnSpBmYQxK9IYd1WQhn_RXFSgP646blU9W-QDBMxOYFpSYBduVDiTai-DtaPqXLcsyqO0Niqpwk0GKuk1XBWCEw-VmFhTGH_WU4XlVlumN1cXCEoMDFv-FLuc7ZXv35PfQfbWCFTcfZFxOAlr_jnA3qu6RNjjLRashnuChmsrPk84oshFO5V-B8dEIRId1GcSI6sVSuj9Ua2niOwHuoVHVzKk9K8TXSao19YaKKWa1VcuC5xSUKanEMh5zZ_QDEmPtR-AQN",
"has_more": true
}

and on each response we got a new cursor  but the same entries!

Здравко
Legendary | Level 20
Go to solution

Hi @saeeda,

As your code is not fully represented, may be something lefts hidden. 🤔


@saeeda wrote:
...
httpService.get('/dropbox/listfolders', {"cursor": cursor})// this endpoint from our server side when the cursor !== '' then call continue
...

...


"then call continue" - Are you sure? It looks like it's not and you are falling in infinite recursion loop. 🤷

In case you are starting from beginning every loop step, then the list is normal to be the same, despite different cursor as result on every query! Be more careful. Check what's inside your 'get' method! Does the end point change as you have declared in comment? 🧐

saeeda
New member | Level 2
Go to solution

you right, thanks.
its working now.

Need more support?