Why does AWS Lambda not upload images to S3 properly in .NET?


This Content is from Stack Overflow. Question asked by first last

I’m having an issue with .NET 6 framework regarding the uploading of image files to S3 using the AWS SDK.

When I POST to my endpoint running on a local IIES it works perfectly and I can see the generated file in S3 without any issues.

The problem is the following: After a serverless deployment to AWS Lambda, the same .NET Core endpoint that produced a perfect result in my local environment behaves way different when it’s running on a lambda. when I try to open the image it shows a square dot at the center but no image.

I am using IFormFile and here is my code

 public async Task<string> Upload(IFormFile formfile, string name)
            var xbuilder = WebApplication.CreateBuilder();
            var _AwsSetting = xbuilder.Configuration.GetSection("AwsCredentials").Get<AWSCredentials>();

            var accessKey = _AwsSetting.AWSAccessKey;
            var secretKey = _AwsSetting.AWSSecretAccessKey;
            RegionEndpoint bucketRegion = RegionEndpoint.APSouth1;
            var bucketName = _AwsSetting.AWSS3BucketName;
            var location = $"{name + Path.GetExtension(formfile.FileName)}";
            var contentType = formfile.ContentType;
            var client = new AmazonS3Client(accessKey, secretKey, bucketRegion);
                using (var stream = new MemoryStream())
                   await formfile.CopyToAsync(stream);

                        var putRequest = new PutObjectRequest()

                            Key = location,
                            BucketName = bucketName,
                            InputStream = stream,
                            CannedACL = S3CannedACL.PublicRead,

                        await client.PutObjectAsync(putRequest);
                        string publicUrl = string.Empty;
                        publicUrl = $"https://{bucketName}.s3.{bucketRegion.SystemName}.amazonaws.com/{location}";
                        return publicUrl;
            catch (Exception e)
                throw e;



Check the Answers

This Question and Answer are collected from stackoverflow and tested by JTuto community, is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.

people found this article helpful. What about you?