这是一个web应用程序,由Python3.7和Django开发。它需要从用户检索音频文件,然后该文件将由Base64UrlEncode方法处理并发送到第三方api
api仅接受从io.BufferedReader读取的已处理结果文件。当前的工作方法是将文件保存到服务器的本地空间,打开它,然后通过io.BufferedReader读取并处理返回值以获得结果文件。api成功接受该文件后,该文件将被删除
有没有什么方法可以让我不必从服务器的本地空间打开文件,而是直接通过缓冲区处理它
我尝试使用InMemoryUploadedFile.read()然后通过Base64UrlEncode处理它,但api不接受它
这是工作代码,api接受发送给它的文件:
def getBody(filepath):
binfile = open(filepath, 'rb')
data = {'audio': base64.b64encode(binfile.read())}
print(data)
print('data:{}'.format(type(data['audio'])))
# print("type(data['audio']):{}".format(type(data['audio'])))
return data
aue = "raw"
engineType = "sms16k"
audioFilePath = r"C:\Users\HiWin10\Desktop\pytes\tessstdd.wav"
r = requests.post(URL, headers=getHeader(aue, engineType), data=getBody(audioFilePath))
我试着改变
binfile = open(filepath, 'rb')
data = {'audio': base64.b64encode(binfile.read())}
到
binfile = request.FILES.get('upfile')
data = {'audio': base64.b64encode(binfile.read())}
api不接受它,因为两个binfile是不同的对象
该应用程序预计将在centos 7.3和windows 10上运行
目前没有回答
相关问题 更多 >
编程相关推荐