Nuxeo Platformがどのように階層ストレージ管理(HSM)を処理するのかよく聞かれます。このことは、企業のストレージコストを削減するための実用的な方法であるため、顧客にとって非常に重要です。このブログでは、アップロードされたすべてのバイナリをAmazon S3バケットに保存し、他のすべてのワークスペースはローカルディスクにコンテンツを保存するように、具体的にNuxeoワークスペースを設定する方法(デフォルト設定)について説明します。その手順を見てみましょう。

##Amazon S3ストレージパッケージをダウンロードする

Nuxeo Marketplace

まず、Nuxeo Marketplaceを開き、Amazon S3ストレージ(スナップショット)パッケージをダウンロードしインストールします。

##Amazon S3パラメータを指定する

Nuxeo Conf

nuxeo.confファイルは、AWSに関するいくつかの行が追加されている必要があります。AWSバケット名、AWSアクセスキー、およびAWSシークレットを値に置き換えます。Nuxeo S3の設定に関する詳細は、こちらでご覧になれます。AWSで設定する方法については、Amazonのマニュアルをご覧ください

##Studioの設定要件

文書スキーマ

バイナリをS3に格納するかどうかを示すフラグを格納するには、新しいスキーマが必要です。この例では、接頭辞「amazon」を持つ「s3」スキーマを作成しました。スキーマには、「syncWithS3」というブール値フィールドが1つあり、デフォルト値はFALSEです。

スクリプトエディタ

次に、「amazon:syncWithS3」フィールド = TRUEを設定する自動化スクリプトが必要です。このフィールドはS3バイナリマネージャによって使用されます。これについては後ほど説明します。

このスクリプトは以下を(擬似コードで)実行します。
1.ドキュメントを入力として受け入れる。
2.アップロードするドキュメントの親ドキュメントを取得する。
3.親ドキュメントのワークスペースタイトルを取得する。この場合、「Amazon s3 Archive」という名前のワークスペースにのみ関心があります。このワークスペースにアップロードされたファイルは、バイナリをS3に送信します。
4.ワークスペースタイトル = 「Amazon s3 Archive」である場合、amazon:syncWithS3 = TRUEを設定する。
5.ステップ#4に従って、ドキュメントをS3またはローカルディスクに保存できるようにドキュメントを返します。

イベントハンドラ

イベントハンドラの実行

新しいイベントハンドラが必要になりました。イベントハンドラは、「ファイル」タイプのすべてのドキュメントに関わるイベントの「作成開始」を待ち受けます。イベントハンドラは、前の手順で作成した自動化スクリプトを実行します。

各種機能

最後に、新しいXML拡張を追加する必要があります。XML拡張は、魔法が起こる場所です。AWS用とローカルディスク用(localEncrypted)に2つの別個のブロブプロバイダをセットアップしました。AWSブロブプロバイダにプロパティを渡します。このプロパティは、ドキュメントの「amazon:syncWithS3」field = TRUEかどうかを判断するために評価されます。その場合は、AWSにバイナリを格納します。そうでない場合は、ローカルディスクにバイナリを保存します。

アーカイブ

このブログでは、特定のワークスペースのバイナリストレージをAmazon S3に簡単に誘導できることを解説しています。これは、Nuxeo Platformが「art of the possible(可能性への挑戦)」を享受する多くの方法の1つにすぎません!詳細については、当社のドキュメンテーションセンターをご覧ください。