在Flask中上传文件,无需多部分/表单数据

我正在尝试将二进制文件上传到Flask端点,而不使用任何类型的multipart/form-data我想简单POSTPUT文件到终端里面的数据,并将其保存到服务器上的文件。我可以找到的唯一示例,以及在其他问题中讨论的唯一方法,都使用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没有区别。

用户名

您是否尝试过使用hashlib?

import hashlib
...
@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)
    file_hash = hashlib.sha256()
    with open(fileFullPath, 'wb+') as f:
        input = request.get_data()
        f.write(input)
        file_hash.update(input)
        ...
    fileDigest = file_hash.hexdigest()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 UploadFile 进行直接文件上传,无需多部分/表单数据请求

AngularJS如何上传多部分表单数据和文件?

使用HTTPWebrequest上传文件(多部分/表单数据)

使用 PowerShell 上传多部分/表单数据文件

AJAX在angular.js 1.3.0中上传多部分/表单数据的“意外令牌”

在Swift中上传包含多部分/表单数据的图像和参数

仅在Swift 4.2中上传包含多部分表单数据的图像

使用多部分/表单数据上传图像

如何使用antd上传发送多部分/表单数据

通过图形API上传照片-多部分/表单数据

在文件上传中使用curl来处理多部分/表单数据

测试ASP.NET Web API多部分表单数据文件上传

使用WSO2 API管理器上传多部分表单数据文件?

用于上传文件的Java HTTP客户端(多部分/表单数据)

使用多部分表单数据上传文件时,我缺少什么?

文件上传API:主体中的多部分/表单数据与原始内容?

无法在iOS中使用NSURLSession多部分表单数据上传文件

PATCH / PUT不接受多部分/表单数据文件上传吗?

快速文件上传java rest api mimepull关闭具有多部分表单数据的问题

多部分文件上传表单数据附件为空

使用Python通过POST多部分表单数据上传文件

将文件从AWS Lambda(Python)中的多部分/表单数据上传到S3

使用多部分/表单数据和文件上传时,Spring Webflow-IllegalStateException

在Spring中上传文件而不使用表单数据

多部分表单数据请求无法调用大文件

使用Guzzle PHP将s3文件用于多部分/表单数据上传

Linux命令行工具可以通过HTTP以多部分/表单数据的形式上传文件?

尝试通过执行PUT请求的API上传模型时文件丢失-多部分/表单数据请求-Laravel / PHP

如何在Swift4中通过具有多个参数的多部分表单数据上传图像或文件