微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 .net core c#

如何解决如何使用 .net core c#

我有项目 .net 核心无服务器应用程序


public APIGatewayProxyResponse UploadFile(APIGatewayProxyRequest request,ILambdaContext context)
{
            FileModel model = JsonConvert.DeserializeObject<FileModel>(request.Body);
            return new APIGatewayProxyResponse
            {
                StatusCode = (int)HttpStatusCode.OK,Body = JsonConvert.SerializeObject(new Dictionary<string,string>
                {
                        { "Code",$"{model.filename}"},{ "Description",$"File Recieved"}
                })
            };
          

}

我有 Lambda 函数,它应该使用 ApiGatewayProxyRequest 接收文件 我正在使用 formdata 通过邮递员发送文件上传文件。 我在 lambda 函数中什么也没收到 如何使用这种方法接收文件? 提前致谢

解决方法

我遇到了同样的问题,我需要在 lambda 函数中处理音频文件并将其发送到外部 API。我使用了一个包 HttpMultiParser 在 NuGet 包管理器中解析文件以及其他表单数据参数。

下面是解析文件和其他参数的示例函数。此函数的输入是 request.body 对象的 APIGatewayHttpApiV2ProxyRequest

    private MyModel ExtractFormData(string requestBody)
    {
        try
        {
            var parser = HttpMultipartParser.MultipartFormDataParser.Parse(new MemoryStream(Convert.FromBase64String(requestBody)));
            var file = parser.Files.First();
            Stream audioFile = file.Data;
            MyModel extractedData = new MyModel
            {
                FirstName = Convert.ToString(parser.GetParameterValue("FirstName")),//STRING
                LastName = Convert.ToString(parser.GetParameterValue("LastName")),//STRING
                VoiceFile = audioFile   //byte[]
            };
            return extractedData;
        }
        catch (Exception e)
        {
            LambdaLogger.Log("CUSTOM LOG : Exception e: " + JsonConvert.SerializeObject(e));
            return new MyModel();
        }
    }

顺便说一下,向 Lambda 发送小文件是可以的,但不能处理大文件。您可以将文件上传到 S3 存储桶并使用 Lambda 函数对其进行处理。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。