为了账号安全,请及时绑定邮箱和手机立即绑定

-AWS C# .Net Core- 如何将 .jpg 图像上传到 S3 存储桶而不将其另存为文件

-AWS C# .Net Core- 如何将 .jpg 图像上传到 S3 存储桶而不将其另存为文件

C#
慕的地10843 2023-05-14 16:36:56
我正在使用 AWS Lambda C# .Net 核心我正在尝试上传 .jpg 文件而不将其保存到本地计算机(部署的 Lambda 函数中不允许)我得到十六进制字符串形式的文件,可以将其重新编码为二进制文件,将其另存为文件,甚至可以正常从本地调试上传。int len = image.ImagePayload.Length;byte[] bin = new byte[len / 2];for (int i = 0; i < len; i += 2){    bin[i / 2] = Convert.ToByte(image.ImagePayload.Substring(i, 2), 16);}File.WriteAllBytes(image.ImageName, bin);PutObjectRequest putObj = new PutObjectRequest{    BucketName = input.Bucket,    FilePath = image.ImageName,    ContentType = "image/jpg",    Key = image.ImageName};PutObjectResponse putResp = S3Client.PutObjectAsync(putObj).Result;完全部署后,AWS Lambda 失败并显示“只读文件系统”有什么方法可以在不将数据保存到文件的情况下上传到 S3?
查看完整描述

1 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

FilePath您可以InputStream在 上使用 ,而不是使用PutObjectRequest。


byte bin = ...


using (var stream = new MemoryStream(bin))

{

    var request = new PutObjectRequest

    {

        BucketName = input.Bucket,

        InputStream = stream,

        ContentType = "image/jpg",

        Key = image.ImageName

    }


    var response = await S3Client.PutObjectAsync(request).ConfigureAwait(false);

}

查看完整回答
反对 回复 2023-05-14
  • 1 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信