【发布时间】:2016-08-22 11:00:34
【问题描述】:
我正在尝试将二进制文件上传到 Flask 端点,而不使用任何类型的 multipart/form-data。我想简单地将文件内的数据POST 或PUT 发送到端点,并将其保存到服务器上的文件中。我能找到的唯一示例,以及其他问题中讨论的唯一方法,使用multipart/form-data。
以下“有效”,但 SHA256 哈希通常不匹配,而上传为 form-data 可以正常工作。
@application.route("/rupload/<filename>", methods=['POST', 'PUT'])
def rupload(filename):
# Sanity checks and setup skipped.
filename = secure_filename(filename)
fileFullPath = os.path.join(UPLOAD_FOLDER, filename)
with open(fileFullPath, 'wb') as f:
f.write(request.get_data())
return jsonify({
'filename': filename,
'size': os.path.getsize(fileFullPath)
})
此外,上述方法在内存方面的效率非常低。有没有办法通过某种类型的缓冲流将其写入输出文件?谢谢!
编辑:这是我测试的方式:
curl -v -H 'Content-Type: application/octet-stream' -X POST --data @test.zip https://example.com/test/rupload/test.zip
编辑: --data-binary 没有区别。
【问题讨论】:
标签: python rest flask multipartform-data