簡體   English   中英

零位的Amazon S3文件

[英]Amazon S3 File Full of Zeros

我正在使用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直到接收到所有字節為止:

using (var stream = transferUtility.OpenStream(request))
{
    var position = 0;
    var length = stream.Length;

    var bytes = new byte[length];

    do
    {
        position += stream.Read(bytes, position, (int)(stream.Length - position));
    } while (position < length);

    stream.Close();

    return bytes;
}

感謝約翰指出這一點。

編輯:

或查看JohnLBevan友好指出的這種擴展方法: https ://stackoverflow.com/a/24412022/361842

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM