クラス DefaultPartHttpMessageReader
- 実装されたすべてのインターフェース:
HttpMessageReader<Part>
Part
のストリームへの "multipart/form-data"
リクエストを解析するためのデフォルトの HttpMessageReader
。 デフォルトの非ストリーミングモードでは、このメッセージリーダーは maxInMemorySize
より小さい部分の内容をメモリに保存し、それより大きい部分の内容を fileStorageDirectory
の一時ファイルに保存します。
このリーダーは、すべてのパーツをマップに集約するために MultipartHttpMessageReader
に提供できます。
- 導入:
- 5.3
- 作成者:
- Arjen Poutsma
フィールドサマリー
クラス org.springframework.http.codec.LoggingCodecSupport から継承されたフィールド
logger
コンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明boolean
canRead
(ResolvableType elementType, MediaType mediaType) 指定されたオブジェクト型がこのリーダーでサポートされているかどうか。int
configured
の最大メモリ内サイズを取得します。このリーダーでサポートされているメディア型のリストを返します。reactor.core.publisher.Flux<Part>
read
(ResolvableType elementType, ReactiveHttpInputMessage message, MapSE<StringSE, ObjectSE> hints) 入力メッセージから読み取り、オブジェクトのストリームにデコードします。reactor.core.publisher.Mono<Part>
readMono
(ResolvableType elementType, ReactiveHttpInputMessage message, MapSE<StringSE, ObjectSE> hints) 入力メッセージから読み取り、単一のオブジェクトにデコードします。void
setBlockingOperationScheduler
(reactor.core.scheduler.Scheduler blockingOperationScheduler) ファイルとディレクトリの作成、およびファイルへの書き込みに使用する ReactorScheduler
を設定します。void
setFileStorageDirectory
(PathSE fileStorageDirectory) maxInMemorySize
より大きいパーツを保存するために使用するディレクトリを設定します。void
setHeadersCharset
(CharsetSE headersCharset) ヘッダーのデコードに使用する文字セットを設定します。void
setMaxDiskUsagePerPart
(long maxDiskUsagePerPart) ファイルパーツに許可される最大ディスク容量を設定します。void
setMaxHeadersSize
(int byteCount) 各パーツのヘッダーセクションごとに許可されるメモリの最大量を構成します。void
setMaxInMemorySize
(int maxInMemorySize) パーツごとに許可されるメモリの最大量を構成します。void
setMaxParts
(int maxParts) 特定のマルチパートリクエストで許可されるパーツの最大数を指定します。void
setStreaming
(boolean streaming) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。クラス org.springframework.http.codec.LoggingCodecSupport から継承されたメソッド
isEnableLoggingRequestDetails, setEnableLoggingRequestDetails
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.http.codec.HttpMessageReader から継承されたメソッド
getReadableMediaTypes, read, readMono
コンストラクターの詳細
DefaultPartHttpMessageReader
public DefaultPartHttpMessageReader()
メソッドの詳細
setMaxHeadersSize
public void setMaxHeadersSize(int byteCount) 各パーツのヘッダーセクションごとに許可されるメモリの最大量を構成します。限界のとき- パラメーター:
byteCount
- ヘッダーの最大メモリ量
getMaxInMemorySize
public int getMaxInMemorySize()configured
の最大メモリ内サイズを取得します。setMaxInMemorySize
public void setMaxInMemorySize(int maxInMemorySize) パーツごとに許可されるメモリの最大量を構成します。制限を超えた場合:- ファイル部分は一時ファイルに書き込まれます。
- 非ファイル部分は
DataBufferLimitException
で拒否されます。
デフォルトでは、これは 256K に設定されています。
ストリーミングが有効になっている場合、このプロパティは無視されることに注意してください。
- パラメーター:
maxInMemorySize
- バイト単位のメモリ内制限。-1 に設定すると、コンテンツ全体がメモリに保存されます
setMaxDiskUsagePerPart
public void setMaxDiskUsagePerPart(long maxDiskUsagePerPart) ファイルパーツに許可される最大ディスク容量を設定します。デフォルトでは、これは -1 に設定されています。これは、最大値がないことを意味します。
ストリーミングが有効になっている場合、または
maxInMemorySize
が -1 に設定されている場合、このプロパティは無視されることに注意してください。setMaxParts
public void setMaxParts(int maxParts) 特定のマルチパートリクエストで許可されるパーツの最大数を指定します。デフォルトでは、これは -1 に設定されています。これは、最大値がないことを意味します。
setFileStorageDirectory
maxInMemorySize
より大きいパーツを保存するために使用するディレクトリを設定します。デフォルトでは、spring-webflux-multipart
という名前のディレクトリがシステム一時ディレクトリに作成されます。ストリーミングが有効になっている場合、または
maxInMemorySize
が -1 に設定されている場合、このプロパティは無視されることに注意してください。- 例外:
IOExceptionSE
- I/O エラーが発生した場合、または親ディレクトリが存在しない場合
setBlockingOperationScheduler
public void setBlockingOperationScheduler(reactor.core.scheduler.Scheduler blockingOperationScheduler) ファイルとディレクトリの作成、およびファイルへの書き込みに使用する ReactorScheduler
を設定します。デフォルトではSchedulers.boundedElastic()
が使用されますが、このプロパティを使用すると、外部で管理されるスケジューラに変更できます。ストリーミングが有効になっている場合、または
maxInMemorySize
が -1 に設定されている場合、このプロパティは無視されることに注意してください。- 関連事項:
Schedulers.newBoundedElastic(int, int, java.lang.String)
setStreaming
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。6.0 の時点で、PartEvent
とPartEventHttpMessageReader
を優先true
に設定すると、パーツのコンテンツは解析された入力バッファーストリームから直接ストリーミングされ、メモリやファイルには保存されません。false
の場合、パーツはメモリ内および / またはファイルストレージによってバックアップされます。デフォルトはfalse
です。ストリーミングが有効になっている場合、このメッセージリーダーによって生成される
Flux<Part>
は、元の順序、つまり HTTP メッセージの順序で消費される必要があることに注意してください。さらに、次の部分に移動する前に、ボディの内容を完全に消費するかキャンセルする必要があります。また、このプロパティを有効にすると、
maxInMemorySize
、maxDiskUsagePerPart
、fileStorageDirectory
、fileCreationScheduler
が事実上無視されることに注意してください。setHeadersCharset
ヘッダーのデコードに使用する文字セットを設定します。RFC 7578 に従い、デフォルトは UTF-8 です。- パラメーター:
headersCharset
- ヘッダーのデコードに使用する文字セット- 導入:
- 5.3.6
- 関連事項:
getReadableMediaTypes
インターフェースからコピーされた説明:HttpMessageReader
このリーダーでサポートされているメディア型のリストを返します。このリストは、考えられるすべてのターゲット要素型に適用されるとは限らないため、このメソッドの呼び出しは通常、canWrite(elementType, null)
を介して保護する必要があります。このリストでは、特定の要素型でのみサポートされているメディア型を除外することもできます。または、HttpMessageReader.getReadableMediaTypes(ResolvableType)
を使用してより正確なリストを作成します。- 次で指定:
- インターフェース
HttpMessageReader<Part>
のgetReadableMediaTypes
- 戻り値:
- サポートされているメディア型の一般的なリスト
canRead
インターフェースからコピーされた説明:HttpMessageReader
指定されたオブジェクト型がこのリーダーでサポートされているかどうか。- 次で指定:
- インターフェース
HttpMessageReader<Part>
のcanRead
- パラメーター:
elementType
- チェックするオブジェクトの型mediaType
- 読み取り用のメディア型 (おそらくnull
)- 戻り値:
- 読み取り可能な場合は
true
、そうでない場合はfalse
readMono
public reactor.core.publisher.Mono<Part> readMono(ResolvableType elementType, ReactiveHttpInputMessage message, MapSE<StringSE, ObjectSE> hints) インターフェースからコピーされた説明:HttpMessageReader
入力メッセージから読み取り、単一のオブジェクトにデコードします。- 次で指定:
- インターフェース
HttpMessageReader<Part>
のreadMono
- パラメーター:
elementType
-HttpMessageReader.canRead(ResolvableType, MediaType)
を介して事前にチェックされている必要があるストリーム内のオブジェクトの型message
- 読み取るメッセージhints
- 入力の読み取りおよびデコード方法に関する追加情報- 戻り値:
- デコードされたオブジェクト
read
public reactor.core.publisher.Flux<Part> read(ResolvableType elementType, ReactiveHttpInputMessage message, MapSE<StringSE, ObjectSE> hints) インターフェースからコピーされた説明:HttpMessageReader
入力メッセージから読み取り、オブジェクトのストリームにデコードします。- 次で指定:
- インターフェース
HttpMessageReader<Part>
のread
- パラメーター:
elementType
-HttpMessageReader.canRead(ResolvableType, MediaType)
を介して事前にチェックされている必要があるストリーム内のオブジェクトの型message
- 読み取るメッセージhints
- 入力の読み取りおよびデコード方法に関する追加情報- 戻り値:
- 要素のデコードされたストリーム
PartEvent
とPartEventHttpMessageReader
を優先