I am trying to use amazon s3
libs but somehow can't pass stream to upload data to s3
.
At the beginning I was using using
statements but then rewrote it to try catch dispose
and still I can't even dispose the stream, stream is not null but I get exception when trying to dispose that "cannot access closed stream" on the line streamWriter?.Dispose()
;
var memoryStream = new MemoryStream();
var streamWriter = new StreamWriter(memoryStream, Encoding.UTF8);
try
{
try
{
await streamWriter.WriteAsync(commandWithMetadata.SerializeToString());
memoryStream.Seek(0, SeekOrigin.Begin);
var fileName = GetFileName(command);
var request = new PutObjectRequest
{
BucketName = BucketName,
Key = fileName,
InputStream = memoryStream
};
await client.PutObjectAsync(request);
}
finally
{
streamWriter?.Dispose();
}
}
finally
{
memoryStream?.Dispose();
}