Я использую Amazon SDK, и у меня есть метод, который возвращает Stream для объекта, хранящегося в сервисе Amazon S3.
Он содержит что-то вроде этого:
var request = new GetObjectRequest().WithBucketName(bucketName).WithKey(keyName);
using (var response = client.GetObject(request))
{
return response.ResponseStream;
}
Очевидно, что при этом поток не читается из вызывающего метода, потому что объект запроса был удален, и когда это будет сделано, он закрывает поток.
Я не хочу чтобы загрузить файл в MemoryStream или FileStream.
Если я не использую предложение using, сборщик мусора удалит объект запроса в какой-то момент, поэтому я не могу просто не использовать его.
Что я Я спрашиваю, есть ли способ обернуть или скопировать поток в другой поток, а затем вернуть его без загрузки файла?
Я использую .NET 3.5.
Изменить: Метод наследуется от абстрактного класса, и вызывающий метод не знает, что он работает с Amazon. Поэтому он ДОЛЖЕН вернуть Stream.