c# - 使用预签名 url 上传到 Amazon S3 的 C# SocketException
问题描述
我正在使用预签名 URL 让我们的 C# 应用程序直接从用户位置上传到我们的 S3 存储桶。我完全使用了 AWS 文档中的 .NET 示例代码:
https://docs.aws.amazon.com/AmazonS3/latest/userguide/PresignedUrlUploadObject.html
private static void UploadObject(string url)
{
HttpWebRequest httpRequest = WebRequest.Create(url) 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))
{
int bytesRead = 0;
while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) > 0)
{
dataStream.Write(buffer, 0, bytesRead);
}
}
}
HttpWebResponse response = httpRequest.GetResponse() as HttpWebResponse;
}
这适用于小图像文件 (<1MB),但对于较大的视频文件 (10-20 MB) 通常会失败。在上传成功之前我需要多次尝试,因为我经常收到一个SocketException错误,说连接被远程主机关闭。
有谁知道如何处理这个问题?
谢谢您的帮助!
解决方案
推荐阅读
- javascript - 从 HTMLDivElement 创建新类并扩展其原型
- css - Why can I not define color property for a div
- outlook - 仅针对 Microsoft Edge 显示的 frame-ancestors 错误
- bootstrap-5 - 添加更多内容时,Bootstrap 5 弹出窗口失败
- javascript - Reddit API - 使用 JavaScript 请求访问令牌
- handlebars.js - 在部分标签中使用车把助手
- material-ui - ButtonGroup href 属性中的按钮更改右边框
- node.js - 已解决:NodeJS - 多个嵌套函数返回 something.another.item
- macos - 重新启动 MacOS 后,Jenkins 主路径会自行更改。如何设置 JENKINS_HOME?
- django - 使用 firebase 令牌登录 Django 管理员 - 最安全的方式是什么?