1

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

如果您检查response.contentLength,您会发现它具有正确的值,即 end - start。但是,响应流的长度小于我所询问的内容以及它在 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();
                    }
                }
4

1 回答 1

1

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

于 2013-09-09T16:56:20.133 回答