ユーザが、フォルダ、サブフォルダ、およびファイルで、構造を含む.zipファイルをドロップできるようにします。ZIPファイルがアップロードされると、.zipファイルを格納する「ファイル」ドキュメントを作成する代わりに、アーカイブは実際に階層構造を持つファイルを作成します。
この機能を必要とする場合、ユーザ用の最適なプラグイン:nuxeo-unzip-file(1)が用意されています。
インストールすると、プラグインによって、上述の機能を正確に実行することができます。階層化されたファイルを含む.zip fileを用意し、Nuxeoアプリケーションにインポートすると、自動的に該当のファイルが抽出され、全く同じ階層が作成されます。
またおそらく、皆さんはお使いのアプリケーションをもっときめ細かくしたいとお考えでしょう。ユーザはドキュメントを作成したい時もあれば、ZIPファイル(通常は、「ファイル」ドキュメント)を保存したい時もあります。
この目的には、次のことを実行する必要があります。 - 自動の動作を無効にする - 「オンデマンドで」ファイルの抽出をする
上記の2点は、当社が誇る画期的なNuxeo Studioオンライン構成ツールを使用して実行することができます。
自動の動作を無効にするには、プラグインで「FileManager」サービスに追加するデフォルト設定をオーバライドする必要があります。Studioで、Advanced Settings > XML Extensionsへ進み、新しいものを作成します。希望する名前を付け、次のXMLをペーストします。その場合、設定の正確な名前を使用して、無効化します。
<extension target="org.nuxeo.ecm.platform.filemanager.service.FileManagerService" point="plugins"><plugin name="UnzipToDocuments" <strong="">enabled="false"</plugin>></extension>
ここで、変更をデプロイし、.zipファイルをドロップすると、Nuxeo Content Services Platformは、「File」ドキュメントを作成します。
「オンデマンドで」抽出するには、プラグイン「Document.UnzipFileToDocuments」が提供する操作を使用します。この操作は、「ドキュメント」または「ブロブ」を受け入れます。インプットがドキュメントの場合、「file:content」フィールドを使用して、ブロブを取得します(オプションの「xpath」パラメータを使用して、別のフィールドを指定することができます)。デフォルトでは、現在のコンテナでドキュメントを作成しますが、この操作でも、希望する場合は「target」パラメータを設定することができます。したがって、基本的には、必要なときに操作を呼び出します(例えば、イベントハンドラで、UIのボタンを提供することによって)。
(1) このプラグインは、素晴らしいNuxeoソリューションアーキテクトチームが提供するものです。このプラグインには、私たち一人ひとりが必要とした機能をそれぞれに追加しました(立ち上げて抽出を構築した者、オプションのパラメータを追加した者、ユニット試験を追加した者、バグを修正した者など。完全にチームワークです!)