cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
Whether you are transferring a single drive, a team or an entire organization, Movebot's cloud migration tool has been built to make your Dropbox migration simple - learn all about it 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

Re: Incorrect type expected on upload [ Python ]

Greg-DB
Dropboxer

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`.

Who's talking

Top contributors to this post

  • User avatar
    Greg-DB Dropboxer
What do Dropbox user levels mean?
Need more support?