我正在使用python request-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')})
知道如何成功传递我的文件名吗?
事实证明,我只需要完全按照示例进行操作即可...
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)
现在完全可以使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句