When getting the URL, FileSize also has to be specified unless it's specified elsewhere.
# First, get URL for file upload
response = requests.post(url, headers=headers, json={
"FileName": file_name,
"Raw": True,
"FileSize": len(file),
})