使用下面的代碼片段,我從AWS S3存儲桶中獲取對象。
現在,我想在一些其他方法中動態修改對象,因此我需要能夠返回下面方法的響應。如何包裝響應 - 響應返回null
但是,由於我有一個使用條款,所以GetResponseObject
得到處置,基本上返回null
。
我在Work with an Amazon S3 response stream after response has been disposed中讀到我應該返回響應。但是,如果我返回響應,它將在調用方法中返回null
。
也許你可以用一些代碼片段來解釋三個mentioned步驟?這將是非常有益的。
- 返回響應
- 包裹流
- 回調
在這一點上我不安靜明白爲什麼我在response
是null
圖所示的結果返回response
的方法。
public GetObjectResponse GetFile(string keyName)
{
using (client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1))
{
GetObjectRequest request = new GetObjectRequest
{
BucketName = bucketName,
Key = keyName
};
using (GetObjectResponse response = client.GetObject(request))
using (Stream responseStream = response.ResponseStream)
using (StreamReader reader = new StreamReader(responseStream))
{
Console.WriteLine("Reader: " + reader.ReadToEnd());
Console.WriteLine("Stream: " + responseStream);
return response;
}
}
}
爲什麼不簡單地將'response'移出'using'塊呢?在其他2'使用'之前聲明它,然後返回它。 – Tim