我正在使用Python 3.6.2中的HTTP.client與API進行通信。如何使用Python http.client PUT方法上傳二進制/視頻文件?
爲了上傳文件,它需要三個階段的過程。
我已成功地使用POST方法進行通話,並且服務器按照我的預期返回數據。
但是,需要上傳實際文件的階段是PUT方法 - 我無法弄清楚如何語法代碼以包含指向存儲器上實際文件的指針 - 該文件是mp4視頻文件。 這裏是代碼的我的小白註解:)
#define connection as HTTPS and define URL
uploadstep2 = http.client.HTTPSConnection("grabyo-prod.s3-accelerate.amazonaws.com")
#define headers
headers = {
'accept': "application/json",
'content-type': "application/x-www-form-urlencoded"
}
#define the structure of the request and send it.
#Here it is a PUT request to the unique URL as defined above with the correct file and headers.
uploadstep2.request("PUT", myUniqueUploadUrl, body="C:\Test.mp4", headers=headers)
#get the response from the server
uploadstep2response = uploadstep2.getresponse()
#read the data from the response and put to a usable variable
step2responsedata = uploadstep2response.read()
我在這個階段找回的響應是一個 片段「錯誤400錯誤的請求 - 無法獲取文件信息。」
我確定這涉及到body =「C:\ Test.mp4」部分的代碼。
你能告訴我如何正確引用PUT方法中的文件嗎?
在此先感謝
Ledge。像魅力一樣工作,謝謝! – yekootmada