将烧瓶中上传的文件发布到API

时间:2020-07-17 14:37:47

标签: python api flask

我已经用文件输入表单构建了一个小的flask应用程序,现在我希望将该文件发送到API。

@app.route('/test', methods=['POST', 'GET'])
def test():
    if request.method == 'POST':
        file = request.files['file']
        file.save(secure_filename(file.filename))

帖子部分的“我的布局”:

    data = {
        "local": file, 
        "name": file.filename
    }

    rp = requests.post(f'https://www.meistertask.com/api/tasks/{task_id}/attachments', data, headers={'Authorization': f'Bearer {access_token}'})
    print(rp.status_code)
    print(rp.content)

无论我如何尝试将该文件发布到API,我总是会收到以下响应:

{
    "errors": [
        {
            "message": "Parameter local should be of type ActionDispatch::Http::UploadedFile!",
            "status": 400
        }
    ]
}

我真的不知道如何从我在flask中上传的文件中发布该类型的文件。 我真的很感谢您的帮助!预先非常感谢。

1 个答案:

答案 0 :(得分:0)

file不是真实文件,而是来自werkzeug软件包的文件存储。

https://werkzeug.palletsprojects.com/en/1.0.x/datastructures/#werkzeug.datastructures.FileStorage

我不清楚meistertask的API文档,尤其是我看不到local应该是什么。一条路径?流?字节?