【发布时间】:2016-03-04 14:03:42
【问题描述】:
我正在从 Amazon S3 下载一个 zip 文件。然后我将此 zip 转换为 MemoryStream。我的代码如下
AmazonS3Client s3Client = new AmazonS3Client(basicAwsCredentials, Amazon.RegionEndpoint.GetBySystemName(item.RegionEndPoint));
//This operation needs about 3-4s
response = await s3Client.GetObjectAsync(request);
var memoryStream = new MemoryStream();
//This operation needs about 8-9s
await response.ResponseStream.CopyToAsync(memoryStream);
memoryStream.Position = 0;
我的连接速度约为 70-80KBs。我想知道为什么处理内存流需要太多时间?
我的另一个问题是实际下载何时发生在任何 http 请求中?当我获取响应对象或从响应对象复制 Stream 时?
编辑
我实际上是从 AWS S3 下载一个 zip 文件并使用 MemoryStream 像这样解压缩文件-
var zipStream = new ZipInputStream(memoryStream);
我的 zip 文件大小约为 2MB。那么哪种操作会更快呢?将 zip 保存到文件系统中,然后直接从 MemoryStream 中提取或提取?
【问题讨论】:
标签: c# .net amazon-s3 http-request