【发布时间】:2011-06-02 11:19:57
【问题描述】:
我正在使用 Amazon SDK,并且我有一个方法可以为存储在 Amazon S3 服务中的对象返回 Stream。
它包含如下内容:
var request = new GetObjectRequest().WithBucketName(bucketName).WithKey(keyName);
using (var response = client.GetObject(request))
{
return response.ResponseStream;
}
显然,在执行此操作时,调用方法无法读取流,因为请求对象已被释放,完成后,它会关闭流。
我不想将文件下载到 MemoryStream 或 FileStream。
如果我不使用 using 子句,垃圾收集器会在某个时候处理请求对象,所以我不能不使用它。
我要问的是,有没有办法将 Stream 包装或复制到另一个 Stream 中,然后返回它而无需下载文件?
我正在使用 .NET 3.5。
编辑: 该方法继承自抽象类,调用者方法不知道它正在与 Amazon 一起使用。所以它必须返回一个 Stream。
【问题讨论】:
标签: c# asp.net stream amazon-s3