最新の安定バージョンについては、Spring Cloud Gateway 4.3.2 を使用してください! |
RequestSize フィルター
リクエストのサイズが許容制限を超える場合、RequestSize フィルターはリクエストがダウンストリームサービスに到達することを制限できます。フィルターは maxSize パラメーターを受け取ります。maxSize は DataSize 型であるため、値は数値の後に "KB" や "MB" などのオプションの DataUnit サフィックスを付けたものとして定義できます。デフォルトはバイトを表す "B" です。これは、バイト単位で定義されるリクエストの許容サイズ制限です。次のリストは、RequestSize フィルターを構成します。
application.yml
spring:
cloud:
gateway:
mvc:
routes:
- id: request_size_route
uri: http://localhost:8080
predicates:
- Path=/upload
filters:
- name: RequestSize
args:
maxSize: 5000000GatewaySampleApplication.java
import static org.springframework.cloud.gateway.server.mvc.filter.BeforeFilterFunctions.uri;
import static org.springframework.cloud.gateway.server.mvc.filter.BeforeFilterFunctions.requestSize;
import static org.springframework.cloud.gateway.server.mvc.handler.GatewayRouterFunctions.route;
import static org.springframework.cloud.gateway.server.mvc.handler.HandlerFunctions.http;
@Configuration
class RouteConfiguration {
@Bean
public RouterFunction<ServerResponse> gatewayRouterFunctionsRequestSize() {
return route("request_size_route")
.GET("/upload", http())
.before(uri("http://localhost:8080"))
.before(requestSize("5000000"))
.build();
}
}RequestSize フィルターは、サイズが原因でリクエストが拒否された場合、レスポンスステータスを追加のヘッダー errorMessage を持つ 413 Payload Too Large として設定します。次の例は、そのような errorMessage を示しています。
errorMessage : Request size is larger than permissible limit. Request size is 6.0 MB where permissible limit is 5.0 MB| ルート定義でフィルター引数として指定されていない場合、デフォルトのリクエストサイズは 5MB に設定されます。 |