【发布时间】:2018-05-21 12:18:34
【问题描述】:
我正在使用 C# 中的官方客户端从 AWS S3 存储桶下载 PDF 文件。它似乎下载了整个文件,但在 8192 (0x2000) 字节之后一切都是 0。 见下图(左为原始文件,右为 S3 下载):
任何关于为什么会发生这种情况的想法将不胜感激。
代码如下:
var client = new AmazonS3Client(
new AmazonS3Config
{
RegionEndpoint = RegionEndpoint.EUWest1
});
var transferUtility = new TransferUtility(client);
var request = new TransferUtilityOpenStreamRequest
{
BucketName = bucketName,
Key = key
};
using (var stream = transferUtility.OpenStream(request))
{
var bytes = new byte[stream.Length];
stream.Read(bytes, 0, (int)stream.Length);
stream.Close();
return bytes;
}
提前致谢,
史蒂夫。
【问题讨论】:
-
Read返回一个带有它读取的字节数的 int。不能保证是您要求的长度。使用 S3,我在一次读取中看到了只有 128 个字节。 -
您通过S3接口验证文件下载正确吗?
-
啊,好的,谢谢约翰。我猜我会一直调用 Read 直到读取完整的流。谢谢。
-
BlueWater86,是的,我有 - 它确实通过 UI 正确下载。我认为约翰可能已经找到了答案。
标签: c# amazon-web-services amazon-s3