www.dextsolution.com
DEXTUPLOAD
X5
製品の説明 > アップロードモード（ORAF、OROF、EXTS、AWSS3）

# アップロードモード（ORAF、OROF、EXTS、AWSS3）

DEXTUploadX5製品はファイルをアップロードする3つの方法（ORAF、OROF、EXTS）を提供し、さらにAmazon Web ServicesのSimple Storage Service（S3）にファイルをアップロードするAWSS3（4.0.0.0以降）モードをサポートする。

デフォルトはORAFで、アップロードモードを変更したい場合は、setUploadMode関数を使用して変更できます。

EXTSはEXNJのような大容量ファイルのアップロードを指し、どちらも利用できる。

    var dx = dx5.get("component-id");
    // ORAF、OROF、EXTS、AWSS3にアップロードモードを設定する。
    dx.setUploadMode("ORAF");

ORAF

  ORAF（基本）は、アップロードするファイルを1つのリクエストに入れて送信する。

  もし、アップロードするファイルが10個ある場合は、一回のリクエストでサーバーに10個のファイルの両方を伝送する。

  通常HTTP multipartデータは、最大2GBバイトを超えることができないようにサーバーで制限されている場合が多いので、10個のファイルの合計は、2GBよりも小さくする。

  サーバーでアップロードが終了したら、応答データは、一度だけ取り戻す。

  区分 | 説明
  --- | ---
  利点 | 一度にすべてのファイルが転送がされるので、サーバ側で処理すると、すべてのファイルがあるか、あるいはまったくないかのいずれの場合のみを処理すればよい。 転送中にサーバーやネットワーク上に問題が発生した場合、ロールバックが容易である。（一時ファイルが生成される部分は、考慮していない） サーバー側の開発（コードが簡潔）が容易である。
  欠点 | ファイル全体の合計が通常2GBを超えることができない。 多くのファイルを一度に転送するとき、データのサイズが大きくなるので、ネットワークのトラフィックを長時間占有する問題が発生する。 トラフィックが大きい情報が長時間占有をすると、サーバーの応答性が低下しので、共存環境で体感性能が落ちる。

OROF

  OROFは、アップロードするファイルの数だけ要求が行われる。

  もし、アップロードするファイルが10個ある場合は、個々のファイルごとに同じアドレスへの要求して、サーバーにファイルを転送することになる。

  一つのファイルがアップロードが完了すると、次のファイルをアップロードする連続的に続くので、すべてのアップロードが完了すると、応答データは、ファイルの数だけ生成される。

  通常HTTP multipartデータは、最大2GBバイトを超えることができないようにサーバーで制限されている場合が多いので、ファイルごとのサイズは2GBよりも小さくする。

  区分 | 説明
  --- | ---
  利点 | ファイル全体のサイズの合計は制限がない。 ORAFアップロードモードに比べてサーバーの応答性が高く、全体体感性能が向上する。（個々のファイルのサイズが小さい場合） 一度に1つのファイルのみ転送がされるので、サーバ側で処理するとき、ループ（loop）作業がない。
  欠点 | ファイルの数だけサーバへのリクエストがあるので、サーバーは、要求情報だけでアップロードするファイルの数と合計サイズを把握することができない。 転送中にサーバーやネットワーク上に問題が発生した場合、サーバーに最初にアップロードされたファイルが残っていることができる。 個々のファイルのサイズが大きい場合にも、データのサイズが大きくなるので、ネットワークのトラフィックを長時間占有する問題が発生する。 サーバー側の開発がORAFより複雑である。

EXTS

  EXTSは大容量アップロードのための方式としては、個々の、またはファイル全体のサイズが2GBを超える場合に使用する。

  OROFよう複数の要求にわたってファイルをアップロードする方法は同じである。

  しかし、ファイルの数だけアップロード要求を分けるのではなく、決まったブロック（チャンク）単位でアップロード要求を共有する。

  要求に対する応答の数は、ブロック数だけ発生するが、実際に運用するため使用する応答データは、ファイルの数だけ生成される。（自社サーバーコンポーネントと連動している場合）

      var dx = dx5.get(id);
      // アップロード方式を大容量に設定する。
      dx.setUploadMode("EXTS");
      // ファイルを分割するブロックサイズをバイト単位で設定する。
      dx.setUploadBlockSize(10 * 1024 * 1024);

  EXTSモードをサポートするには、サーバーはDEXTUpload Pro（4.0.0.0以降）、DEXTUpload.NET Pro（5.0.0.0以降）、DEXTUploadNJ製品が必要である。より詳しくは、「大容量ファイルのアップロード」のドキュメントを参照している。

  区分 | 説明
  --- | ---
  利点 | 個別と全体のファイルサイズの制限がない。 ORAFまたはOROFアップロードモードに比べてサーバーの応答性が高く、全体体感パフォーマンスが大幅に向上する。 ブロック単位を調節して、サーバー自体の容量フィルターにかからないように処理することができる。 続いて上げるが可能である。
  欠点 | ブロック数のサーバーへのリクエストがあるので、サーバーは、要求情報だけでアップロードするファイルの数と合計サイズを把握することができない。 ブロック単位が小さくなるほど、要求の数が増える。 転送中にサーバーやネットワーク上に問題が発生した場合、サーバーに最初にアップロードされたファイルが残っていることができる。 裂かブロックを合わせるべき問題があり、サーバ側の開発が非常に複雑である。（自社サーバーコンポーネントを使用すると、簡単に処理される。）

AWSS3

  Amazon Simple Storage Serviceにファイルをアップロードするためのアップロード方法を指します。

  詳細については、「AWS S3への大きなファイルのアップロード」を参照してください。