public override bool Read()
{
bool result = base.Read();
if (this.ResponseData.StatusCode == System.Net.HttpStatusCode.OK &&
!_checkedForErrorResponse)
{
// Check for top level XML element "Error".
// Few S3 operations like CopyObject, CopyPart and CompleteMultipartUpload
// can return an HTTP 200 response with an error element.
if (this.IsStartElement)
{
if (this.TestExpression("Error", 1))
{
var errorResponse = new Amazon.S3.Model.Internal.MarshallTransformations.S3ErrorResponseUnmarshaller().Unmarshall(this);
var s3Exception = new Amazon.S3.AmazonS3Exception(
errorResponse.Message, null, errorResponse.Type, errorResponse.Code,
errorResponse.RequestId, this.ResponseData.StatusCode, errorResponse.Id2, errorResponse.AmzCfId);
s3Exception.Region = errorResponse.Region;
throw s3Exception;
}
_checkedForErrorResponse = true;
}
}
return result;
}
}