azure-functions - Azure 函数:“超过多部分正文长度限制 16384。”
问题描述
我想将我的 Web 应用程序中的文件上传到 HttpTriggered Azure 函数。我有以下代码:
[FunctionName("UploadFileToStorage")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "upload")] HttpRequest req
, ILogger log)
{
var formdata = await req.ReadFormAsync();
}
这行读取表单数据的代码会触发以下异常:System.IO.InvalidDataException: 'Multipart body length limit 16384 exceeded.'
我无法弄清楚如何允许上传更大的文件。我知道 asp.net core你可以做到这一点,但 Azure Functions 呢?
解决方案
不建议您将文件较大的Form作为httptrigger请求传入,这样很容易导致httptrigger超时。这是一个冒险的设计,
大型、长时间运行的函数可能会导致意外的超时问题。
看看这个:
如果可能,函数应该是无状态和幂等的。将任何所需的状态信息与您的数据相关联。例如,正在处理的订单可能有关联的状态成员。函数可以根据该状态处理订单,而函数本身保持无状态。
您可能拥有良好的 Internet 连接,但用户可能没有。如果你需要设计这个应用程序,那么它的工作流程应该是这样的:Web 应用程序 → Azure 存储 → Azure Functions。使用 blobtrigger 然后处理上传到存储的文件。
推荐阅读
- android - 没有通过 Google Fit SDK 提供的“引导式呼吸”活动类型
- kubernetes - 将 YAML 转换为 JSON 时出错:未找到预期的密钥
- snowflake-cloud-data-platform - Snowflake - snowsql PUT 命令上传很慢
- c - 不使用在另一台机器上工作的代码接收多播数据
- php - 处理嵌套关系时如何返回单个模型?
- java - 使用java解析文本文件,每行要提取多个值
- typescript - TypeScript Cloud Functions 从父目录或同级目录导入模块
- pandas - matplotlib 散点图使用第三个数据系列来指定颜色
- mysql - 如何使用 MySQL 获取元素的行号?
- c# - 在 EF Core 中加载相关实体会导致大量 db trips