首页 > 解决方案 > 在 C# MVC 中使用来自 HttpPostedFileBase 的预签名 URL 上传 S3 AWS 图像

问题描述

我正在尝试HttpPostedFileBase. 我有一个服务 API,它为图像上传(上传 uri)提供预签名 URL 。根据文件上传的官方 AWS 文档,fileStream它以文件路径为参数。但是,我没有文件路径,因为我HttpPostedFileBase用于将图像直接保存到 AWS。

这是代码:

public void UploadImage(string requestId, HttpPostedFileBase image)
    {
        var uploadInfo = GetImageUploadURL(image);

        HttpWebRequest httpRequest = WebRequest.Create(uploadInfo.Data.UploadUrl) as HttpWebRequest;
        httpRequest.Method = "PUT";
        using (Stream dataStream = httpRequest.GetRequestStream())
        {
            var buffer = new byte[8000];
            using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) //there is no filePath;
            {
                int bytesRead = 0;
                while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    dataStream.Write(buffer, 0, bytesRead);
                }
            }
        }
        HttpWebResponse response = httpRequest.GetResponse() as HttpWebResponse;
    }

有没有使用的解决FileStream方案HttpPostedFileBaseHttpPostedFileBase或者使用预签名 URL在 AWS 上上传图像有不同的方式?

谢谢

标签: c#asp.net-mvcamazon-web-servicesamazon-s3image-upload

解决方案


推荐阅读