使用python请求toolbelt捕获文件名

时间:2014-08-18 00:29:45

标签: python python-requests

我正在使用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')})

知道如何成功传递我的文件名吗?

1 个答案:

答案 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)

现在完全奏效。