cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
Want to learn some quick and useful tips to make your day easier? Check out how Calvin uses Replay to get feedback from other teams at Dropbox here.

Discuss Dropbox Developer & API

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

Incorrect type expected on upload [ Python ]

Incorrect type expected on upload [ Python ]

YevhenRadchenko
New member | Level 2

So Im trying to upload some multiple files using API, but in the end I just getting

dropbox.stone_validators.ValidationError: '<_io.BufferedReader name='./image_01.jpg'>' expected to be a string, got BufferedReader

My code: 

def image_uploader(filename):

    filename_lower = filename.lower()

    for ignored_file in IGNORED_FILES:
        if ignored_file in filename_lower:
            return True

    return False


local_dir = '.'
dbx_token = dropbox.Dropbox('MY_API_TOKEN')


for root, dirs, files in os.walk(local_dir):

    for file_name in files:
        if image_uploader(file_name):
            continue

        local_path = os.path.join(root, file_name)
        relative_path = os.path.relpath(local_path, local_dir)
        dropbox_path = os.path.join('/Apps/face_db_upload', relative_path)

        with open(local_path, 'rb') as f:
            dbx_token.files_upload(dropbox_path, f)

 

1 Reply 1

Greg-DB
Dropbox Staff

The files_upload method expects a string, but you're passing in a file object. You'll need to update your code to pass in a string, e.g., try passing in `f.read()` instead of `f`.

Need more support?
Who's talking

Top contributors to this post

  • User avatar
    Greg-DB Dropbox Staff
What do Dropbox user levels mean?