Используя нижеприведенный фрагмент кода, я возвращаю объект из своего ковша AWS S3.
Теперь я хотел бы изменить объект «на лету» в рамках какого-то другого метода, поэтому мне нужно будет вернуть ответ метода ниже.Как обернуть ответ - Ответ возвращается null
Однако, поскольку у меня есть пункт использования, то устанавливается GetResponseObject
, который по существу возвращает null
.
Я прочитал в Work with an Amazon S3 response stream after response has been disposed, что я должен вернуть ответ. Однако, если я верну ответ, он возвращает null
в вызывающем методе.
Возможно, вы могли бы объяснить три этапа mentioned с помощью некоторых фрагментов кода? Это было бы очень полезно.
- Вернуться Response
- Оберните поток
- Ответный
На данный момент я не тихо понимаю, почему мой подход возвращения response
, как показано ниже результатов в response
быть null
.
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 'using', а затем верните его. – Tim