最近のアクセス:
マルチメディア用外部ストレージ

クラウドモデルはアプリケーションのライフタイムを通じてビジネスアジリティを維持するため、企業はますます多くのアプリケーションをクラウドに移動しています。これに関連するメリットとして、データへの高速アクセス、データの安全性、および拡張性があります。
マルチメディア (ビデオ、オーディオ、画像) の格納については、いくつかの理由により、データベースに保存するよりも外部ストレージを使用するほうが適しています。それについて説明します。

拡張性

クラスター化されたアプリケーションの拡張性を確保するため、サーバーのファイルシステムを使用してマルチメディアを保存することはできません。次回の HTTP リクエストで同じサーバーがクライアントを提供する保証がないからです。
 
従来は、画像をデータベースに保存していました。リクエストがあると、アプリケーションが実行されている同じサーバーのファイルシステムに画像がダウンロードされました ( [ Blob Local Storage ] プロパティと [ Temp media directory property ] プロパティに関連)。これは、サーバーアフィニティがなく、クラスターで実行されるアプリケーションには不利となります。この場合、Web セッションが同じかどうかにかかわらず、画像を処理するノードが異なる場合があります。

セキュリティ

データは、不正ユーザーによるアクセスから守る必要があります。
マルチメディアファイルをデータベースに保存するデメリットは、たとえば画像を表示するために取得するときに、サーバーのファイルシステム内で、Web アプリケーションからアクセス可能な場所に一時的に格納されることです (Temp Media ディレクトリー)。また、画像を取得するときにファイルシステムに自動的にダウンロードされるファイルが、アプリケーションやサーバーの安定性を損なう可能性もあります。
外部ストレージを使用すると、認証されていないユーザーにデータが流出するリスクを防止し、サーバーを悪意のある攻撃から保護できます。

パフォーマンス

サーバーのファイルシステムにデータが一時的に格納されると、I/O 速度が低下する可能性があります。外部ストレージを使用することでこの問題を回避できます。

GeneXus アプリケーションにおけるマルチメディア用外部ストレージ

外部ストレージシステムを使用した場合、マルチメディアファイルはデータベースに格納されず、ストレージファイルの場所を示す URL がテーブルの "_GXI" 列に保存されます。
つまり、任意のソース (プロシージャー、ビジネスコンポーネント、またはトランザクション) からの挿入または更新によって、外部ストレージ内のデータが自動的に管理されます。また、外部ストレージはデータの取得も自動的に行われます。ユーザーがコードを記述したり、プログラムのロジックを変更したりする必要はありません。
GeneXus 15 Upgrade 12 より前のバージョンでは、Image データタイプAudio データタイプVideo データタイプに使用できます。Blob は対象ではなく、通常どおりデータベースに格納されます。
GeneXus 15 Upgrade 12 以降では、BlobFile データタイプでも実装がサポートされています。

サポート対象の外部ストレージプロバイダー

外部ストレージプロバイダーは、次の中から選択できます:
Amazon S3
IBM Cloud Object Storage 
Windows Azure Storage
Google Cloud Storage

マルチメディアファイルに外部ストレージを使用する方法 

適切なプロバイダーを決定し、必要な設定をクラウドで行ったら、GeneXus で [ Storage Provider ] プロパティを設定するか Storage Provider API を使用するだけです。
これは Web アプリケーションとモバイルアプリケーションの両方に有効です。

実装

イメージ:222.png CloudServices.config ファイルには外部ストレージへの接続に関する情報が含まれるので、このファイルを本番環境に含める必要があります。このファイルは、Java アプリケーションの場合は WEB-INF フォルダ、.NET アプリケーションの場合は仮想ディレクトリーにあります。

検討事項

  • 外部ストレージを使用する場合、データがアプリケーションから更新されると、必ず自動的に外部に保存されます。このため、DB に保存されているデータをアプリケーションで更新すると、外部に保存されます。反対に、外部ストレージを使用している場合に、データベースに格納するように変更しても、エラーは発生しません。データを再び更新するまでは外部ストレージにアクセス可能です。データは更新時にデータベースに格納されます。
  • レコードを削除しても、マルチメディアファイルは外部ストレージから削除されません。
  • バケット名またはフォルダを変更した場合、以前のバケットまたはフォルダを削除しない限り、データの取得時にアプリケーションでエラーは発生しません。その後、アプリケーションではファイルが新しいバケットまたはフォルダに保存されます。
  • Amazon S3 を使用する場合、バケットは「パブリックアクセス」が可能である必要があります。つまり、ファイルへのアクセスには認証が行われず、URL が分かっていればアクセスできます。このソリューションが適切ではない場合は、Storage Provider API の使用をお勧めします。

参考情報

Storage Provider API






サブページ
Created: 17/05/30 19:02 by Admin Last update: 22/04/05 18:18 by Admin
カテゴリ
Powered by GXwiki 3.0