如何使用 .net core c# 在 Aws Lambda Api 网关中接收文件#
How to receive File in Aws Lambda Api Gateway using .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 包管理器中解析文件以及其他表单数据参数。
下面是一个示例函数,用于解析文件和其他参数。此函数的输入是 APIGatewayHttpApiV2ProxyRequest
对象的 request.body
。
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 函数对其进行处理。
我有项目 .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 包管理器中解析文件以及其他表单数据参数。
下面是一个示例函数,用于解析文件和其他参数。此函数的输入是 APIGatewayHttpApiV2ProxyRequest
对象的 request.body
。
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 函数对其进行处理。