メモ書き
ファイルパスを作成するクラスを使った概観
com.atlassian.confluence.pages.persistence.dao.HierarchicalFileSystemAttachmentDataDao
のcreateDirectoryHierarchy()を追ってみると、IdMultiPartHashGeneratorクラスのgenerateで行ってる。
で、最後に添付ファイルのIDを付けてる。結局
File spaceルート = createDirectoryHierarchy(添付ルートディレクトリ, spaceId);
File ページルート = createDirectoryHierarchy(spaceルート, pageId);
File 添付ファイルディレクトリ = new File(ページルート, attachmentId);
みたいな感じ。
で、createDirectoryHierarchy()を自前でやるには
IdMultiPartHashGeneratorクラスのgenerateを使えるようにする。
このクラスは
confluence-project/confluence-core/confluence/src/etc/java/attachmentSubsystemContext.xml
を見るとbeanで作れる。
ん~~~~。Confluence5.5でのクラスの移動。
5.5以降では
com.atlassian.confluence.pages.persistence.dao.IdMultiPartHashGenerator
が非推奨になり、
com.atlassian.confluence.pages.persistence.dao.filesystem.IdMultiPartHashGenerator
を使ってくれという事になっている。
ただ、5.6.1のソースを見ると
confluence-project/confluence-core/confluence/src/etc/java/attachmentSubsystemContext.xml
<bean id="idHashGenerator" class="com.atlassian.confluence.pages.persistence.dao.IdMultiPartHashGenerator">
となっているので、とりあえず非推奨の方を使っておく。
この辺りは、実は
5.4までは
com.atlassian.confluence.pages.persistence.dao.HierarchicalFileSystemAttachmentDataDao
5.5からは
com.atlassian.confluence.pages.persistence.dao.filesystem.FileSystemAttachmentDataDao
と、使うFileSystemAttachmentDataDaoが違ってくるところに依ってるのだけど、どうもidHashGeneratorまでは統合されてないっぽいので。。。