Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 1441
Línea 49... Línea 49...
49
        ) {
49
        ) {
50
            $this->minimumCompressionSize = $command['@request_min_compression_size_bytes'];
50
            $this->minimumCompressionSize = $command['@request_min_compression_size_bytes'];
51
        }
51
        }
52
        $nextHandler = $this->nextHandler;
52
        $nextHandler = $this->nextHandler;
53
        $operation = $this->api->getOperation($command->getName());
53
        $operation = $this->api->getOperation($command->getName());
54
        $requestBodySize = $request->getBody()->getSize();
-
 
55
        $compressionInfo = isset($operation['requestcompression'])
54
        $compressionInfo = isset($operation['requestcompression'])
56
            ? $operation['requestcompression']
55
            ? $operation['requestcompression']
57
            : null;
56
            : null;
Línea 58... Línea 57...
58
 
57
 
59
        if (!$this->shouldCompressRequestBody(
58
        if (!$this->shouldCompressRequestBody(
60
            $compressionInfo,
59
            $compressionInfo,
61
            $command,
60
            $command,
62
            $operation,
61
            $operation,
63
            $requestBodySize
62
            $request
64
        )) {
63
        )) {
65
            return $nextHandler($command, $request);
64
            return $nextHandler($command, $request);
Línea 66... Línea 65...
66
        }
65
        }
67
 
66
 
Línea -... Línea 67...
-
 
67
        $this->encodings = $compressionInfo['encodings'];
-
 
68
        $request = $this->compressRequestBody($request);
-
 
69
 
-
 
70
        // Capture request compression metric
-
 
71
        $command->getMetricsBuilder()->identifyMetricByValueAndAppend(
-
 
72
            'request_compression',
68
        $this->encodings = $compressionInfo['encodings'];
73
            $request->getHeaderLine('content-encoding')
69
        $request = $this->compressRequestBody($request);
74
        );
Línea 70... Línea 75...
70
 
75
 
71
        return $nextHandler($command, $request);
76
        return $nextHandler($command, $request);
Línea 99... Línea 104...
99
 
104
 
100
    private function shouldCompressRequestBody(
105
    private function shouldCompressRequestBody(
101
        $compressionInfo,
106
        $compressionInfo,
102
        $command,
107
        $command,
103
        $operation,
108
        $operation,
104
        $requestBodySize
109
        $request
105
    ){
110
    ){
106
        if ($compressionInfo) {
111
        if ($compressionInfo) {
107
            if (isset($command['@disable_request_compression'])
112
            if (isset($command['@disable_request_compression'])
108
                && $command['@disable_request_compression'] === true
113
                && $command['@disable_request_compression'] === true
109
            ) {
114
            ) {
110
                return false;
115
                return false;
111
            } elseif ($this->hasStreamingTraitWithoutRequiresLength($command, $operation)
-
 
112
                || $requestBodySize >= $this->minimumCompressionSize
116
            } elseif ($this->hasStreamingTraitWithoutRequiresLength($command, $operation)
113
            ) {
117
            ) {
114
                return true;
118
                return true;
-
 
119
            }
-
 
120
 
-
 
121
            $requestBodySize = $request->hasHeader('content-length')
-
 
122
                ? (int) $request->getHeaderLine('content-length')
-
 
123
                : $request->getBody()->getSize();
-
 
124
 
-
 
125
            if ($requestBodySize >= $this->minimumCompressionSize) {
-
 
126
                return true;
115
            }
127
            }
116
        }
128
        }
117
        return false;
129
        return false;
Línea 118... Línea 130...
118
    }
130
    }
Línea 153... Línea 165...
153
        throw new \InvalidArgumentException(
165
        throw new \InvalidArgumentException(
154
            'The minimum request compression size must be a '
166
            'The minimum request compression size must be a '
155
            . 'non-negative integer value between 0 and 10485760 bytes, inclusive.'
167
            . 'non-negative integer value between 0 and 10485760 bytes, inclusive.'
156
        );
168
        );
157
    }
169
    }
158
}
-
 
159
170
}
-
 
171