www.dextsolution.com
DEXTUPLOAD
X5
menu toggle製品の説明 > アップロードモード(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への大きなファイルのアップロード」を参照してください。