gpt4 book ai didi

c# - Amazon S3 PutObject 非常慢

转载 作者:太空狗 更新时间:2023-10-29 20:03:34 25 4
gpt4 key购买 nike

我正在使用以下代码将文件放入 S3 存储中。我发现它非常慢。秒表指示 18 秒+。有什么建议或其他经验吗?

        // upload the file to S3
AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey, secretAccessKey);

PutObjectRequest request = new PutObjectRequest();

FileStream fs = new FileStream(sourceFileName, FileMode.Open);

request.WithInputStream(fs);
request.WithBucketName(bucketName);
request.WithKey(keyName);
Stopwatch stp1 = new Stopwatch();
stp1.Start();
client.PutObject(request);
stp1.Stop();
fs.Close();

此代码是 C#。我正在使用亚马逊 .net SDK。

文件只有56K大小,我的上传带宽是1.87Mbps。

最佳答案

这听起来和我最近遇到的一个问题非常相似,这是由 Windows 上“Internet 选项”中的自动代理检测设置引起的。

Amazon SDK 使用 WebRequest 发出 HTTP 请求,默认情况下 WebRequest 遵循计算机的“Internet 选项”设置来检测本地代理。幸运的是 WebRequest 有一个静态属性 WebRequest.DefaultWebProxy,当设置为 null 时,它会删除自动代理检测。

您需要做的就是在开始使用 AmazonS3 之前将其设置为 null:

WebRequest.DefaultWebProxy = null; // here

AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey, secretAccessKey);

[...]

值得注意的是,这个静态属性只需要为每个应用程序域设置一次,而不是每次你想创建一个 AmazonS3 对象时。

替代方法:

如果您不介意重新配置机器,请访问:

Windows Control Panel > Internet Options > Connections > Lan Settings

并取消选中“自动检测设置”。如果您使用这种方法,则根本不需要设置 DefaultWebProxy 属性。

更多信息:

当我遇到这个问题时,我在 SO 上提出了以下问题:

How to turn off the automatic proxy detection in the `AmazonS3` object?

如果您有兴趣,它比我在这里的回答更详细。

关于c# - Amazon S3 PutObject 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6808411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com