如何在 Azure 函数中接收多部分表单数据?

2024-01-06

我想在 Azure Function 中接收包含图像和文本的多部分数据。

我可以看到很多 C# 和 Node 中的示例节点链接 https://www.builtwithcloud.com/multipart-form-data-processing-via-httptrigger-using-nodejs-azure-functions/但在 python 中找不到任何东西。

在官方文档中也找不到任何内容Docs https://learn.microsoft.com/en-us/azure/azure-functions/functions-reference-python


我已经尝试过下面的代码,它对我有用:

import logging
import json
import io
from PIL import Image
from azure.storage.blob import BlobServiceClient,BlobClient
import azure.functions as func


def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

    name = req.form['name']
    interests =json.dumps(req.form["interests"], indent=2)
    imagefile = req.files["file"]
    filename = imagefile.filename
    filestream = imagefile.stream
    filestream.seek(0)

    blob = BlobClient.from_connection_string(conn_str= "<your connection string>", container_name="<container name>", blob_name="<blob name>")

    blob.upload_blob(filestream.read(), blob_type="BlockBlob")

    if name:
        return func.HttpResponse(f"Hello, {name}. Created profile with your interests : {interests}. Uploaded your profile image file :{filename} to the blob. This function executed successfully.")
    else:
        return func.HttpResponse(
             "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.",
             status_code=200
        )

但是,在这种情况下,您也可以使用 PIL 从图像中获取字节。然后代码如下所示:


import logging
import json
import io
from PIL import Image
from azure.storage.blob import BlobServiceClient,BlobClient
import azure.functions as func


def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

    name = req.form['name']
    interests =json.dumps(req.form["interests"], indent=2)
    filename = req.files["file"].filename
    image = Image.open(req.files["file"])
    imgByteIO = io.BytesIO()
    image.save(imgByteIO, format=image.format)
    imgByteArr = imgByteIO.getvalue()

    blob = BlobClient.from_connection_string(conn_str= "<your connection string>", container_name="<container name>", blob_name="<blob name>")
    blob.upload_blob(imgByteArr)

    if name:
        return func.HttpResponse(f"Hello, {name}. Created profile with your interests : {interests}. Uploaded your profile image file :{filename} to the blob. This function executed successfully.")
    else:
        return func.HttpResponse(
             "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.",
             status_code=200
        )


这是邮递员的请求:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Azure 函数中接收多部分表单数据? 的相关文章

随机推荐

  • 如何将函数和参数放入Python队列? [复制]

    这个问题在这里已经有答案了 我有一个带有 2 个线程的 python 程序 让我们将它们命名为 source 并 目的地 源线程有时会向目标发送消息 带有一些参数的线程 比目标线程选择一条消息 必须调用相应的函数 并将参数保存在消息中 这个
  • Google App Scriptscurl授权

    只是想玩一下谷歌应用程序脚本 在匿名模式下 一切似乎都很好 除了任何人都可以像该片段所示那样简单地调用我的脚本 curl https script google com macros s exec ip myIp I used 本手册 ht
  • 为什么这个数组没有属性“log10”?

    我正在尝试计算 ndarray 的 log10 但出现以下错误 AttributeError float object has no attribute log10 通过做一些研究我发现它与 python 处理的方式有关数值 但我仍然不明白
  • 使用 CSS 调整画布大小会导致鼠标操作倾斜

    所以我有这个小提琴 它完全解释了我的问题 工作小提琴 http jsfiddle net jiggliemon hph4e The JS var w this w this scale var h this h this scale var
  • 由于 JAR 冲突,无法运行 Flume

    我已经手动安装了 Flume 和 Hadoop 我的意思是 不是 CDH 并且我正在尝试运行 twitterexample https github com cloudera cdh twitter example来自Cloudera In
  • NetworkX 通过平均并行长度将 MultiGraph 转换为简单 Graph

    有一种解决方案可以使用 Maehler 的代码将 MultiGraph 转换为 Simple Graph import networkx as nx G nx MultiGraph G add nodes from 1 2 3 G add
  • 显式设置枚举字段值的优点和缺点

    显式设置枚举的字段而不是仅仅定义它们的名称是否更好 例如 Enum1 与 Enum2 有什么优缺点 Enum1 enum SomeEnum Something1 0 Something2 1 Enum2 enum SomeEnum Some
  • 如何在 Postgres 中使用时间戳字段对日期进行分组?

    假设我有 3 行数据 id product uuid version uuid created at 22 586d8e21b9529d14801b91bd 5a711a0094df04e23833d8ef 2018 02 10 19 51
  • 按顺序使用异步方法运行函数

    我有一个函数数组 里面有异步方法 我想创建一个函数 它接受函数数组并按顺序执行该函数 我不知道如何实现它 感谢帮助 这些函数不是异步的本质上 它是每个函数内部的方法 例子 function task1 console log task1 s
  • 模型缺少“image_file_name”所需的 attr_accessor - Ruby on Rails 4

    当我发布新聚会时 我收到以下错误消息 派对模型缺少 image file name 所需的 attr accessor它指向我的 party controller rb 中的代码 def create party Party new par
  • LLDB 中有 Quicklook 调试命令吗?

    假设我有一个UIImage我正在设置一个UIButton 我想在 Quicklook 中查看它 但是哦不 我无法快速查看调试图像是什么 但我可以从 LLDB 做一些事情来获取图像 比如 getAppButton imageForState
  • 从 PyQt 小部件项设置和获取“数据”?

    这与其说是一个问题 不如说是一个要求解释的请求 我正在关注 Mark Summerfield 的 使用 Python 和 Qt 进行快速 GUI 编程 我一定错过了一些东西 因为我无法理解以下机制将我正在使用的真实 instance ite
  • 确定 cmake_minimum_required() 的适当版本

    从一组CMakeLists txt文件 我如何确定适当的版本号cmake minimum required 还有比熟悉 CMake 功能的历史并使用反复试验更好的方法吗 CMake 有每个版本的文档 https cmake org docu
  • 如何在 WPF 中将按钮中的图像设置为每 30 秒摇动一次?

    我不擅长处理任何样式和动画 我希望能够获得一些帮助来制作一个图像 该图像是按钮的唯一内容 当按钮可见性设置为 Visibility Visible 时 每 30 秒震动一次 这是为了引起用户的注意 鼓励他们点击按钮 我更愿意将其作为图像上的
  • Lodash 去抖动不起作用

    const debounce require lodash debounce gt console log testing 1000 leading true trailing false 上面的代码不起作用 https lodash co
  • 共享异常实例是否安全

    我们正在制作一个类似Excel 的系统 当我们打开文档并发现不支持的功能时 我们会抛出异常 我们只支持一小部分 Excel 函数 这种情况可能会经常发生 问题是 当有很多单元格包含不受支持的功能时 就会创建大量异常实例 创建这么多异常实例会
  • cygwin 中的 aws cli - 如何清理 Windows 和 cygwin 样式路径中的差异

    我怀疑这是我在正确设置路径变量方面的无能 但我不知所措 我已经在 cygwin 中使用 pip 安装了 aws cli pip install awscli 我有两个 python 环境 一个 windows anaconda 发行版 以及
  • github:没有拉取请求的代码审查?

    Using a 共享存储库模型 https help github com articles about collaborative development models 简而言之 我们希望能够审查代码更改 但是 我们根本不希望拉取请求阻碍
  • 跨环境导出和导入安全权限的最佳方法是什么?

    我们有大量的出版物 目前我们在多个环境 主要是 UAT 和 PROD 中手动应用 CMS 权限 这是很乏味的 而且经常容易出错 我们正在尝试跨多个环境导出和导入 CMS 权限 因此可以手动完成一次 然后使用某种工具移植到其他环境 环境 Tr
  • 如何在 Azure 函数中接收多部分表单数据?

    我想在 Azure Function 中接收包含图像和文本的多部分数据 我可以看到很多 C 和 Node 中的示例节点链接 https www builtwithcloud com multipart form data processin