To reproduce your curl
command, you don't need to encode the image in base64: --data-binary @test.jpeg
curl option sends test.jpeg
file as is:
import requests
r = requests.post('https://example.com/api/upload.json?filename=test.jpeg',
data=open('test.jpeg', 'rb'),
headers={'Content-Type': 'image/jpeg'},
auth=('test@test.ca', 'test')) # username, password