通过Flask将音频文件上传到Parse REST API

时间:2014-10-02 13:35:04

标签: python flask parse-platform

我正在尝试通过REST API将录音上传到Parse。我正在将blob上传到我的Flask应用程序,然后将该文件转换为base64字符串以发送给Parse。

Parse的反应是上传成功,但在Parse上浏览文件时音频文件没有播放。

非常感谢任何帮助。

file.wav是uint8array中的录音

// js
ParleData.Upload = function(file) {
   var dataView = new DataView(file.wav.buffer);
   var blob = new Blob([dataView], { type: 'audio/x-wav' });

   var form = new FormData();
   form.append('file', blob, 'audio.wav');

   return $.ajax({
      type: 'POST',
      url: '/upload',
      contentType: false,
      processData:false,
      cache:false,
      data: form
   });
}

# views.py
@app.route('/upload', methods=['POST'])
def upload():
   wav = request.files['file']
   return jsonify(DAS.upload(wav))

# das.py
def upload(self, wav):
    b64 = base64.b64encode(wav.read())

    connection = httplib.HTTPSConnection('api.parse.com', 443)
    connection.connect();
    connection.request('POST', 'https://api.parse.com/1/files/audio', b64, {
    'X-Parse-Application-Id':self.keys.X_PARSE_APP_ID,
    'X-Parse-REST-API-Key':self.keys.X_PARSE_RESTAPI_ID,
    'Content-Type': "audio/x-wav"
    })
    return json.loads(connection.getresponse().read())

1 个答案:

答案 0 :(得分:1)

不需要base64编码步骤。该文件可以在没有任何转换的情况下发布,并且应该可播放。如果您可以使用流式上传,这也可以提高客户端的性能。