【问题标题】:s3 File Uploading is so slow C#s3文件上传太慢了C#
【发布时间】:2017-08-23 12:06:09
【问题描述】:

我正在使用 transferUtility 类通过 .NET 中的输入流将文件上传到 S3。问题是,上传一个 4MB 的文件大约需要一分钟。我尝试了 transferUtility.Upload 和 S3Client.PutObject ,上传时间似乎没有改变。代码如下:

WebRequest.DefaultWebProxy = null;


this.S3Client = new Amazon.S3.AmazonS3Client(accessKeyId, secretAccessKey, endPoint);

this.transferUtility = new TransferUtility(this.S3Client);

Amazon.S3.Transfer.TransferUtilityUploadRequest transferRequest = new TransferUtilityUploadRequest();

transferRequest.BucketName = s3Bucket;

transferRequest.CannedACL = Amazon.S3.S3CannedACL.PublicRead;


transferRequest.InputStream = (Stream)fileStream;

transferRequest.Key = newFileName;

transferRequest.Headers.Expires = new DateTime(2020, 1, 1);

this.transferUtility.Upload(transferRequest);

任何帮助将不胜感激。

谢谢你,

【问题讨论】:

  • 您是否测试了互联网连接,以确保不是这样?
  • 是的,我在 2 个不同的本地服务器和一个远程服务器上尝试过/没有任何变化
  • 如果您尝试使用小得多的文件(例如 200kb)会发生什么?它仍然需要很长时间,还是更快?一个 8mb 的文件呢?这需要两倍的时间吗?
  • 我刚刚测试了上传一个356kb的excel文件,耗时6秒

标签: c# .net amazon-s3


【解决方案1】:

我发现这是因为将文件流上传到应用程序服务器需要很长时间。

【讨论】:

    【解决方案2】:

    这也可能是由于 C# SDK 对它上传的每个块进行 MD5 求和(CPU 性能受到影响,因此在计算 MD5Sum 时会减慢上传速度)。

    请参阅https://github.com/aws/aws-sdk-net/issues/832#issuecomment-383756520 了解解决方法。

    【讨论】:

      猜你喜欢
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 2018-09-15
      • 2023-04-05
      相关资源
      最近更新 更多