| @@ -9,9 +9,8 @@ | ||
| 9 | 9 | use Dudlewebs\WPMCS\s3\Aws\Api\StructureShape; |
| 10 | 10 | use Dudlewebs\WPMCS\s3\Aws\CommandInterface; |
| 11 | 11 | use Dudlewebs\WPMCS\s3\Aws\Exception\AwsException; |
| 12 | 12 | use Dudlewebs\WPMCS\s3\Aws\ResultInterface; |
| 13 | -use Dudlewebs\WPMCS\s3\GuzzleHttp\Psr7\Utils; | |
| 14 | 13 | use Dudlewebs\WPMCS\s3\Psr\Http\Message\ResponseInterface; |
| 15 | 14 | use Dudlewebs\WPMCS\s3\Psr\Http\Message\StreamInterface; |
| 16 | 15 | /** |
| 17 | 16 | * Custom S3 parser on top of the S3 protocol parser |
| @@ -77,10 +76,10 @@ | ||
| 77 | 76 | private function parse200Error(CommandInterface $command, ResponseInterface $response) : void |
| 78 | 77 | { |
| 79 | 78 | // This error parsing should be just for 200 error responses |
| 80 | 79 | // and operations where its output shape does not have a streaming |
| 81 | - // member. | |
| 82 | - if (200 !== $response->getStatusCode() || !$this->shouldBeConsidered200Error($command->getName())) { | |
| 80 | + // member and the body of the response is seekable. | |
| 81 | + if (200 !== $response->getStatusCode() || !$this->shouldBeConsidered200Error($command->getName()) || !$response->getBody()->isSeekable()) { | |
| 83 | 82 | return; |
| 84 | 83 | } |
| 85 | 84 | // To guarantee we try the error parsing just for an Error xml response. |
| 86 | 85 | if (!$this->isFirstRootElementError($response->getBody())) { |