クラス DefaultPartHttpMessageReader
- 実装されているすべてのインターフェース:
HttpMessageReader<Part>
Part のストリームへの "multipart/form-data" リクエストを解析するためのデフォルトの HttpMessageReader。 デフォルトの非ストリーミングモードでは、このメッセージリーダーは maxInMemorySize より小さい部分の内容をメモリに保存し、それより大きい部分の内容を fileStorageDirectory の一時ファイルに保存します。
このリーダーは、すべてのパーツをマップに集約するために MultipartHttpMessageReader に提供できます。
- 導入:
- 5.3
- 作成者:
- Arjen Poutsma
フィールドのサマリー
クラス org.springframework.http.codec.LoggingCodecSupport から継承されたフィールド
loggerコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明booleancanRead(ResolvableType elementType, MediaType mediaType) 指定されたオブジェクト型がこのリーダーでサポートされているかどうか。intconfiguredの最大メモリ内サイズを取得します。このリーダーでサポートされているメディア型のリストを返します。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) 入力メッセージから読み取り、単一のオブジェクトにデコードします。voidsetBlockingOperationScheduler(reactor.core.scheduler.Scheduler blockingOperationScheduler) ファイルとディレクトリの作成、およびファイルへの書き込みに使用する ReactorSchedulerを設定します。voidsetFileStorageDirectory(PathSE fileStorageDirectory) maxInMemorySizeより大きいパーツを保存するために使用するディレクトリを設定します。voidsetHeadersCharset(CharsetSE headersCharset) ヘッダーのデコードに使用する文字セットを設定します。voidsetMaxDiskUsagePerPart(long maxDiskUsagePerPart) ファイルパーツに許可される最大ディスク容量を設定します。voidsetMaxHeadersSize(int byteCount) 各パーツのヘッダーセクションごとに許可されるメモリの最大量を構成します。voidsetMaxInMemorySize(int maxInMemorySize) パーツごとに許可されるメモリの最大量を構成します。voidsetMaxParts(int maxParts) 特定のマルチパートリクエストで許可されるパーツの最大数を指定します。voidsetStreaming(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を優先