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

urvisheth's avatar
urvisheth
New member | Level 2
2 years ago

Upload file to sharing folder using Python Package

I want to figure out how I can upload a file to sharing folder. I have tried following code to upload a file to dropbox. Rather than uploading the file to shared folder "Reports", it uploaded it to my "userfolder/Reports" I tried various options but nothing worked out. I was able to get the shared folder id for the shared folder but there is no shared_path set for the folder. Let me know what else I can do.

 

 

 

 

 

import dropbox


DROPBOX_ACCESS_TOKEN = 'TOKEN'


def dropbox_connect():
    """Create a connection to Dropbox."""

    try:
        dbx = dropbox.Dropbox(DROPBOX_ACCESS_TOKEN)
        print('Connected to Dropbox successfully')
    except AuthError as e:
        print('Error connecting to Dropbox with access token: ' + str(e))
    return dbx

    

dbx = dropbox_connect()

file_path = 'PATHNAME'

# Specify the path to the folder. Here Reports should be a shared folder
destination_path = '/Reports/test.pdf'


# Upload the file to the folder
try:
    with open(file_path, 'rb') as file:
        response = dbx.files_upload(file.read(), destination_path)
        print('File uploaded to shared folder:', response.name)
except FileNotFoundError:
    print('File not found:', file_path)
except dropbox.exceptions.ApiError as e:
    print('Error uploading file:', e)

 

 

 

 

 

  • urvisheth I see you want to upload a file to a shared folder in your team space, not your own folder. By default, API calls operate in the "member folder" of the connected account, not the "team space". You can configure API calls to operate in the "team space" instead though. To do so, you'll need to set the "Dropbox-API-Path-Root" header. You can find information on this in the Team Files Guide. With the Python SDK, you can set that header using the with_path_root method.

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

    Hi urvisheth,

    If nothing else has been set, by default all file/folder path are rooted on the user folder, not to something else! On individual accounts user folder match to the account root and that why nothing need to be added. On group account, like business subscription, one account has more users and that's why both folder differs. To access something with account root based path or based to some other namespace, you have to set that namespace, the one that's not the default. 😉

    Hope this gives direction.

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

    urvisheth I see you want to upload a file to a shared folder in your team space, not your own folder. By default, API calls operate in the "member folder" of the connected account, not the "team space". You can configure API calls to operate in the "team space" instead though. To do so, you'll need to set the "Dropbox-API-Path-Root" header. You can find information on this in the Team Files Guide. With the Python SDK, you can set that header using the with_path_root method.

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!