Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PutObjectAsync(请求)使用aws lambda上载损坏的映像_C#_Amazon S3_.net Core_Aws Lambda - Fatal编程技术网

C# PutObjectAsync(请求)使用aws lambda上载损坏的映像

C# PutObjectAsync(请求)使用aws lambda上载损坏的映像,c#,amazon-s3,.net-core,aws-lambda,C#,Amazon S3,.net Core,Aws Lambda,我的图像正在本地上传,但当我部署lambda时,它给出了一个损坏的图像(注意:它正在上传图像,但大小增加),我在API网关中添加了二进制媒体类型,但仍然没有得到正确的结果。有趣的是,当我上传一个文本文件时,它在桶上是完美的,但不是图像 public async Task<S3Response> ImageUpload(IFormFile file ){ string bucket_name = "your_bucket"; var client = new AmazonS3

我的图像正在本地上传,但当我部署lambda时,它给出了一个损坏的图像(注意:它正在上传图像,但大小增加),我在API网关中添加了二进制媒体类型,但仍然没有得到正确的结果。有趣的是,当我上传一个文本文件时,它在桶上是完美的,但不是图像

public  async Task<S3Response> ImageUpload(IFormFile file ){

 string bucket_name = "your_bucket";

 var client = new AmazonS3Client("***", "****", RegionEndpoint.USEast1);

 var stream = new System.IO.MemoryStream();

 file.CopyTo(stream);

 var request = new PutObjectRequest
 {                   

   Key = file.FileName,

   BucketName = bucket_name,  

   InputStream = stream,

   //ContentType = "application/octet-stream",

   ContentType = file.ContentType,

   CannedACL = S3CannedACL.PublicRead

 };

 response = await client.PutObjectAsync(request);

}

公共异步任务ImageUpload(IFormFile){
string bucket_name=“您的_bucket”;
var client=newamazons3client(“****”,“****”,RegionEndpoint.USEast1);
var stream=new System.IO.MemoryStream();
file.CopyTo(流);
var请求=新的PutObjectRequest
{                   
Key=file.FileName,
BucketName=bucket_名称,
InputStream=流,
//ContentType=“应用程序/八位字节流”,
ContentType=file.ContentType,
CannedACL=S3CannedACL.PublicRead
};
response=wait client.PutObjectAsync(请求);
}

我将图像保存为s3存储桶上的base64字符串,并在客户端从base64字符串转换回我的原始图像。如果有人得到更好的解决方案,请添加一个线程



byte[] byteArray = Encoding.UTF8.GetBytes(file.Filebase64);
stream= new MemoryStream(byteArray);
var request = new PutObjectRequest
{

  Key=file.File_name,
  BucketName = bucket_name,
  InputStream = stream,
  ContentType = "text/plain",
  CannedACL = S3CannedACL.PublicRead
};
其中图像文件模型类如下所示:

public class ImageModel
{
        public String File_name { set; get; }
        public String Filebase64 { set; get; }
}