After reading the documentation I understood that the API is internally async so I tried to call sync put with a list of files, but it fails: def sync_upload_files(filenames: list[str]): s3 = ...