c# - 在 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
方案HttpPostedFileBase
?HttpPostedFileBase
或者使用预签名 URL在 AWS 上上传图像有不同的方式?
谢谢
解决方案
推荐阅读
- css - 在 div 中以不同方式对齐 h1 到 h6
- reactjs - Webpack 将来自不同 React 组件的所有 CSS 混杂在一起
- javascript - 更改 DOM 中的随机元素(无 jQuery)
- amcharts - 如何在 amcharts v4 中单击时突出显示单个条
- reactjs - 在 React 中显示来自 json api 的列表
- python - 如何使用变形网格(可逆)扭曲文档图像
- javascript - 在电子邮件正文中发送 html 模板
- css - 使用 css sprite 动画时防止重绘
- webpack - 将 Laravel 混合输出到多个位置
- jquery - 使用 angular4 中的 mydatepicker 在输入框中设置日期