We're making changes to the Community, so you may have received some notifications - thanks for your patience and welcome back. Learn more here.

Forum Discussion

vas1992's avatar
vas1992
Helpful | Level 5
2 years ago

Python. Get full storage information

Hello. How can I display the full size of my storage using python?

I was able to get only the occupied volume:

 

print(dbx.users_get_space_usage().used)

 

The only thing I could do was get this:

 

print(dbx.users_get_space_usage().allocation)

 

Result:

SpaceAllocation('individual', IndividualSpaceAllocation(allocated=2147483648))

 

I don't know how to extract "allocated" from here.

  • Greg-DB's avatar
    Greg-DB
    2 years ago

    vas1992 Здравко is correct; here's what a simple usage of this may look like:

    allocation = dbx.users_get_space_usage().allocation
    if allocation.is_individual():
        print("Individual allocation:")
        print(allocation.get_individual().allocated)
    elif allocation.is_team():
        print("Team allocation:")
        print(allocation.get_team().allocated)
    

     

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

    vas1992 wrote:

    ...

    I don't know how to extract "allocated" from here.


    Hi vas1992,

    You can do it like any other field on any other object in Python (as programing language). Just read what you have got in documentation. 'users_get_space_usage' method returns SpaceUsage class object. You have successful get in touch to 'used' field of this object (type int). 👍

    The other field of the same object - 'allocation' - is not basic type, but another object! The object's type is SpaceAllocation - an union of individual and team allocation data. Since your account is individual (in the particular case, but you should check it in a common case), 'get_individual' method is applicable. This method result is of type IndividualSpaceAllocation class. I believe it's easy to see that field 'allocated' can be accessed here (int type) in the same way you are accessing 'used' field before. 😉 Take a look here too.

    Hope this clarifies matter.

    • vas1992's avatar
      vas1992
      Helpful | Level 5

      Something I did not understand at all. It is possible as much as possible in detail, for stupid?

       

      I use:

       

      print(dropbox.users.SpaceAllocation('individual', value=None).get_individual())

       

      I am getting an error:


      Traceback (most recent call last):
      File "/home/vas/MyScripts/UploadCSV/RMS_up_Dx.py", line 108, in <module>
      space_usage(dbx)
      File "/home/vas/MyScripts/UploadCSV/RMS_up_Dx.py", line 66, in space_usage
      print(dropbox.users.SpaceAllocation('individual', value=None).get_individual())
      File "/home/vas/.local/lib/python3.8/site-packages/stone/backends/python_rsrc/stone_base.py", line 145, in __init__
      validator.validate_type_only(value)
      File "/home/vas/.local/lib/python3.8/site-packages/stone/backends/python_rsrc/stone_validators.py", line 543, in validate_type_only
      raise ValidationError('expected type %s, got %s' %
      stone.backends.python_rsrc.stone_validators.ValidationError: expected type dropbox.users.IndividualSpaceAllocation, got null

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

        vas1992 wrote:

        ...

        I am getting an error:

        ...


        Of course, when you are using invalid object, errors can be expected. Even more, would be strange if it passes without error.

    • Greg-DB's avatar
      Greg-DB
      Icon for Dropbox Staff rankDropbox Staff

      vas1992 Здравко is correct; here's what a simple usage of this may look like:

      allocation = dbx.users_get_space_usage().allocation
      if allocation.is_individual():
          print("Individual allocation:")
          print(allocation.get_individual().allocated)
      elif allocation.is_team():
          print("Team allocation:")
          print(allocation.get_team().allocated)
      

       

About Discuss Dropbox Developer & API

Node avatar for Discuss Dropbox Developer & API

Make connections with other developers

795 PostsLatest Activity: 5 days ago
192 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!