名前付きの画像 (A.gif など) の単一ファイル ノードを作成しようとしています。ここで、複数のノードでファイルを再利用したいと考えています。これを行う方法はありますか?回避策として、リポジトリ内の異なるパスのファイル ノードを再作成していますが、これによりファイルが重複します。
1656 次
4 に答える
1
jackrabbit を使用している場合、DataStoreがアクティブな場合、ファイル ノードのコピー (またはバイナリ プロパティのコピー) は安価です。
そのコンポーネントは、コンテンツのダイジェストに基づいて、「大きな」バイナリ プロパティ (設定可能なサイズのしきい値 IIRC を持つ) が 1 回だけ格納されるようにします。
したがって、この場合、ディスク容量を気にすることなく、同じファイル ノードを何度もコピーできます。
于 2012-03-28T20:47:14.007 に答える
0
そして、完全を期すために、参照を忘れないでください。
Node imageNode = rootNode.addNode("imageNode");
imageNode.addMixin(JcrConstants.MIX_REFERENCEABLE);
Node node1 = rootNode.addNode("1");
node1.setProperty("image", imageNode);
Node node2 = rootNode.addNode("2");
node2.setProperty("image", imageNode);
session.save();
PropertyIterator references = imageNode.getReferences();
while (references.hasNext()) {
Property reference = references.nextProperty();
System.out.println(reference.getPath());
}
于 2012-04-11T09:36:34.110 に答える
0
nt:linkedFile型は、まさにこの種の使用のために作成されました。
于 2012-04-20T17:49:18.910 に答える
0
あなたの問題を理解しているかどうかわかりません。ただし、ファイルを 1 つの場所に保存してpathから、複数の場所からプロパティを使用して参照します。
次のノード構造があるとします。
-content
- articles
- article1
- article2
- images
- image1
imagePath各記事に、表示する画像のパス (この場合は ) を指す名前のプロパティを設定できます/content/images/image1。
于 2012-03-28T07:21:02.850 に答える