AWS S3 GetObjectResponse.ResponseStream长度与请求的不同

时间:2013-09-09 01:18:26

标签: .net amazon-s3

我在从Amazon S3读取对象数据时遇到了严重问题。我读取特定字节范围的代码如下:

如果您检查 response.contentLength ,您会发现它具有正确的值,即结束 - 开始。 但是,响应流的长度小于我所询问的内容以及ContentLength中的内容。 我没有得到我要求的所有数据,我不知道为什么以及修剪了哪个部分。

                GetObjectRequest request = new GetObjectRequest()
                {
                    BucketName = m_BucketName,
                    Key = m_FileName,
                    ByteRangeLong = new Amazon.S3.Model.Tuple<long, long>(start, end)
                };
                GetObjectResponse response = m_AwsClient.GetObject(request);
                using (Stream responseStream = response.ResponseStream)
                {
                    using (StreamReader reader =
                        new StreamReader(responseStream))
                    {
                        strResponse = reader.ReadToEnd();
                    }
                }

1 个答案:

答案 0 :(得分:0)

这是一个编码问题。 StreamReader类默认为UTF-8编码,忽略了它无法理解的字符。如果我在StreamReader构造函数中将编码设置为Default,则会得到解析。