You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.

Forum Discussion

saeeda's avatar
saeeda
New member | Level 2
3 years ago

files/list_folder/continue

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.

  • 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? 🧐

  • Здравко's avatar
    Здравко
    Legendary | Level 20

    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's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    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's avatar
      saeeda
      New member | Level 2
      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!

      • Здравко's avatar
        Здравко
        Legendary | Level 20

        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? 🧐

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

5,910 PostsLatest Activity: 3 days ago
333 Following

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 or Facebook.

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!