クラス DefaultPartHttpMessageReader

java.lang.ObjectSE
org.springframework.http.codec.LoggingCodecSupport
org.springframework.http.codec.multipart.DefaultPartHttpMessageReader
実装されたすべてのインターフェース:
HttpMessageReader<Part>

public class DefaultPartHttpMessageReader extends LoggingCodecSupport implements HttpMessageReader<Part>
Part のストリームへの "multipart/form-data" リクエストを解析するためのデフォルトの HttpMessageReader

デフォルトの非ストリーミングモードでは、このメッセージリーダーは maxInMemorySize より小さい部分の内容をメモリに保存し、それより大きい部分の内容fileStorageDirectory の一時ファイルに保存します。

このリーダーは、すべてのパーツをマップに集約するために MultipartHttpMessageReader に提供できます。

導入:
5.3
作成者:
Arjen Poutsma
  • コンストラクターの詳細

    • 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

      public void setFileStorageDirectory(PathSE fileStorageDirectory) throws IOExceptionSE
      maxInMemorySize より大きいパーツを保存するために使用するディレクトリを設定します。デフォルトでは、spring-webflux-multipart という名前のディレクトリがシステム一時ディレクトリに作成されます。

      maxInMemorySize が -1 に設定されている場合、このプロパティは無視されることに注意してください。

      例外:
      IOExceptionSE - I/O エラーが発生した場合、または親ディレクトリが存在しない場合
    • setBlockingOperationScheduler

      public void setBlockingOperationScheduler(reactor.core.scheduler.Scheduler blockingOperationScheduler)
      ファイルとディレクトリの作成、およびファイルへの書き込みに使用する Reactor Scheduler を設定します。デフォルトでは Schedulers.boundedElastic() が使用されますが、このプロパティを使用すると、外部で管理されるスケジューラに変更できます。

      maxInMemorySize が -1 に設定されている場合、このプロパティは無視されることに注意してください。

      関連事項:
      • Schedulers.boundedElastic()
    • setHeadersCharset

      public void setHeadersCharset(CharsetSE headersCharset)
      ヘッダーのデコードに使用する文字セットを設定します。RFC 7578 に従い、デフォルトは UTF-8 です。
      パラメーター:
      headersCharset - ヘッダーのデコードに使用する文字セット
      導入:
      5.3.6
      関連事項:
    • getReadableMediaTypes

      public ListSE<MediaType> getReadableMediaTypes()
      インターフェースからコピーされた説明: HttpMessageReader
      このリーダーでサポートされているメディア型のリストを返します。このリストは、考えられるすべてのターゲット要素型に適用されるとは限らないため、このメソッドの呼び出しは通常、canWrite(elementType, null) を介して保護する必要があります。このリストでは、特定の要素型でのみサポートされているメディア型を除外することもできます。または、HttpMessageReader.getReadableMediaTypes(ResolvableType) を使用してより正確なリストを作成します。
      次で指定:
      インターフェース HttpMessageReader<Part>getReadableMediaTypes 
      戻り値:
      サポートされているメディア型の一般的なリスト
    • canRead

      public boolean canRead(ResolvableType elementType, @Nullable MediaType mediaType)
      インターフェースからコピーされた説明: 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 - 入力の読み取りおよびデコード方法に関する追加情報
      戻り値:
      要素のデコードされたストリーム