Я пытаюсь загрузить файл через API, который доступен через почтовый запрос. Я протестировал запрос в Paw, и он работает, однако в Python он возвращает ошибку 400.
import requests
file = ('test-video_1.mp4', open('/Volumes/GoogleDrive/My Drive/Code/Fuse-Qu/qu/uploads/test-video_1.mp4','rb'), 'video/mp4')
def upload_to_fuse(url):
# Upload video to fuse
# POST https://***.fuseuniversal.com/api/v4.2/contents/media
try:
response = requests.post(
url="https://***.fuseuniversal.com/api/v4.2/contents/media",
params={
"auth_token": auth_token,
},
headers={
"Content-Type": "multipart/form-data; charset=utf-8; boundary=__X_PAW_BOUNDARY__",
},
files={
"name": "test api upload 11",
"description": "this is a test of uploading a video via the api",
"composite_attributes[type]": "Video",
"community_ids": "24827",
"composite_attributes[file]": ('test-video_1.mp4', open('/Volumes/GoogleDrive/My Drive/Code/Fuse-Qu/qu/uploads/test-video_1.mp4','rb'), 'video/mp4')
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
upload_to_fuse('example.com')
Я думаю, что это связано с тем, как я ссылаюсь на фактический файл, но не уверен, что изменить. Я попытался использовать многочастный кодер requests-toolbelt
, но с этим я получаю ту же ошибку.