我正在使用python requests-toolbelt发布大型音频文件。我最初使用请求发布文件如下:
files = {'file': open("test.mp3", "rb")}
audio_headers = {'Authorization': 'Bearer ' + token}
add_file = requests.post(file_url, headers=audio_headers, files=files)
成功抓取我的文件并将文件名添加到文件名字段,但它不适用于大文件。
所以我转而使用requests-toolbelt MultipartEncoder发布文件,如下所示:
files = MultipartEncoder({'file': open(file, "rb")})
audio_headers = {'Authorization': 'Bearer ' + token, 'Content-Type': 'audio/mpeg'}
add_file = requests.post(file_url, headers=headers, data=files)
在此方案中,文件已创建,但未捕获文件名。
我也尝试过定义这样的文件:
files = MultipartEncoder({'file': file, open(file, "rb"), 'audio/mpeg')})
知道如何成功传递我的文件名吗?
答案 0 :(得分:2)
原来我只需要完全按照这个例子......
files = MultipartEncoder(fields={'file': (file, open(file, "rb"), 'audio/mpeg')})
audio_headers = {'Authorization': 'Bearer ' + token, 'Content-Type': files.content_type}
add_file = requests.post(file_url, headers=audio_headers, data=files)
现在完全奏效。