Question

I would like to transpose the curl command (which upload a local file to rackspace)

curl -X PUT -T screenies/hello.jpg -D - \
-H "X-Auth-Token: fc81aaa6-98a1-9ab0-94ba-aba9a89aa9ae" \
https://storage101.dfw1.clouddrive.com/v1/CF_xer7_343/images/hello.jpg

to python requests. So far I have:

url = 'http://storage.clouddrive.com/v1/CF_xer7_343/images/hello.jpg'
headers = {'X-Auth-Token': 'fc81aaa6-98a1-9ab0-94ba-aba9a89aa9ae'}
request = requests.put(url, headers=headers, data={})

where do I specify I want to upload screenies/hello.jpg?

I understand -T in curl represents 'to FTP server', but I have searched the requests's github but cannot find mention of FTP.

Was it helpful?

Solution

No, -T just means 'upload this file', which can be used with FTP but is not limited to that.

You can just upload the file data as the data parameter:

with open('screenies/hello.jpg', 'rb') as image:
    request = requests.put(url, headers=headers, data=image)

where data will read and upload the image data for you.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top