c#S3 PutObject太慢了

c#S3 PutObject太慢了,c#,amazon-s3,C#,Amazon S3,我读过一些文章,说AmazonS3API的PutObject方法非常慢,但没有一篇文章给出了如何处理它的真正答案 当我上传一张大小为500KB的图片时,大约需要2-3秒,这在我看来非常重要 你能告诉我我能做些什么来提高上传的性能吗 var appConfig = ConfigurationManager.AppSettings; var s3Client = AWSClientFactory.CreateAmazonS3Client(appConfig["AWSAccessKey"], appC

我读过一些文章,说AmazonS3API的
PutObject
方法非常慢,但没有一篇文章给出了如何处理它的真正答案

当我上传一张大小为500KB的图片时,大约需要2-3秒,这在我看来非常重要

你能告诉我我能做些什么来提高上传的性能吗

var appConfig = ConfigurationManager.AppSettings;
var s3Client = AWSClientFactory.CreateAmazonS3Client(appConfig["AWSAccessKey"], appConfig["AWSSecretKey"],RegionEndpoint.GetBySystemName(appConfig["AWSRegion"]));

var request = new PutObjectRequest
{
    BucketName = bucketName,
    Key = path,
    InputStream = filestream,
    CannedACL = S3CannedACL.PublicRead
};

_AmazonS3Client.PutObject(request); //Takes 2-3 seconds for 500 kb pictures

我还读到有人说这应该有帮助
WebRequest.DefaultWebProxy=null但这段代码对我没有帮助。

它看起来更像是一个与网络相关的问题,无论是在你这边还是在亚马逊那边。进行网络跟踪以获取更多有关正在发生的事情的详细信息。您还可以在S3所在的同一数据中心/地区启动一台虚拟机,然后在那里运行代码和测量结果,以排除网络/ISP问题。@rene我的网络非常好,而且有几周的时间很慢……当我在中欧对S3端点进行跟踪时,我得到了13跳22毫秒的响应。“你的怎么样?”雷内:我不熟悉崔西特。我在cmd“tracert MyServerIP”中写过,开始收到结果——它最多写30跳,然后开始写ms,起初不到20跳,但后来开始超时,我不确定这意味着什么。如果你深入研究网络性能,最好确保你了解这些工具。您应该对由此产生的任何内容执行
tracert
RegionEndpoint.GetBySystemName(appConfig[“AWSRegion”])
或查找您的区域端点。如果它开始超时,这是正常的。意味着并非所有路由器都允许ICMP通信。结果告诉您两件事:您和公共S3端点之间有多少网络组件。数字越少越好。毫秒是网络速度的粗略指标。它更像是一个与网络相关的问题,无论是在你这边还是在亚马逊那边。进行网络跟踪以获取更多有关正在发生的事情的详细信息。您还可以在S3所在的同一数据中心/地区启动一台虚拟机,然后在那里运行代码和测量结果,以排除网络/ISP问题。@rene我的网络非常好,而且有几周的时间很慢……当我在中欧对S3端点进行跟踪时,我得到了13跳22毫秒的响应。“你的怎么样?”雷内:我不熟悉崔西特。我在cmd“tracert MyServerIP”中写过,开始收到结果——它最多写30跳,然后开始写ms,起初不到20跳,但后来开始超时,我不确定这意味着什么。如果你深入研究网络性能,最好确保你了解这些工具。您应该对由此产生的任何内容执行
tracert
RegionEndpoint.GetBySystemName(appConfig[“AWSRegion”])
或查找您的区域端点。如果它开始超时,这是正常的。意味着并非所有路由器都允许ICMP通信。结果告诉您两件事:您和公共S3端点之间有多少网络组件。数字越少越好。毫秒是网络速度的粗略指示。