'Copying GZipStream to file

I want to decompress a file that was uploaded encoded with gzip to S3 straight to a file stream.

Here is my method that returns the gzip stream after decompressing the S3 stream:

using var stream = await _s3.GetObjectStreamAsync(_processServiceOptions.BucketName, key, null);
using var gzipStream = new GZipStream(stream, CompressionMode.Decompress, true);
await WriteToFileAsync(gzipStream);

I'm trying to use it like so to copy it directly to the file stream, instead of loading it into memory using another stream...

async Task WriteToFileAsync(Stream data)
{
    using (var fs = File.OpenWrite(path))
    {
        await data.CopyToAsync(fs);
    }
}

However I'm getting System.IO.InvalidDataException: The archive entry was compressed using an unsupported compression method.

Why is that?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source