我使用 Visual Studio 空模板为 AWS 创建了一个无服务器。我正在尝试向它发送一个文件,该文件在内部使用 C# 上传到 S3。我可以通过控制台应用程序上传文件。我需要帮助:如何通过 Insomnia 或 Postman 向 API 发送文件——现在可以做到 b. 如何接收文件,以便当我上传它 S3 时,我能够以我在 API 中发送的方式直接下载它。 - 现在可以做到
[编辑] c。尝试将文件保存到存储桶时,文件大小小于上传的大小并且已损坏。
代码片段:
公共 APIGatewayProxyResponse 获取(APIGatewayProxyRequest 请求,ILambdaContext 上下文)
{
context.Logger.LogLine(Encoding.ASCII.GetByteCount(request.Body).ToString());
MemoryStream ms = new MemoryStream();
TransferUtility utility = new TransferUtility(new AmazonS3Client("<AccessKey>", "<SecretKey>", Amazon.RegionEndpoint.USEast1));
var checker = new TransferUtilityUploadRequest()
{
InputStream = new MemoryStream(Encoding.ASCII.GetBytes(request.Body)),
BucketName = "<BucketName>",
Key = "<FileName>.pdf"
};
utility.Upload(checker);
var response = new APIGatewayProxyResponse
{
StatusCode = (int)HttpStatusCode.OK,
Body = JsonConvert.SerializeObject(checker),
Headers = new Dictionary<string, string> { { "Content-Type", "application/json" }, { "Access-Control-Allow-Origin", "*" } }
};
return response;
}
注意:文件可以是 docx 或 pdf。我也有将文件流上传到 S3 的代码只需要通过 APIGatewayProxyRequest 类型接收文件并转换为流的信息。
提前致谢。