2009-11-29

Reflecto & plone.app.blob を入れましたが…。

Plone2.1.3の時は、サイズの大きいPDFや画像、バイナリドキュメントは、Data.fsには保存しませんでした。代わりに、PloneLocalFolderNGというファイルシステム連携のプロダクトがありましたので、Data.fs のサイズを抑えつつ、こちらを便利に使っていました。

このプロダクトの良いところは、以下の通り。

  • Ploneの認証機能を利用しつつ、ファイルシステム上のコンテンツをマウントし、公開できる
  • コンテンツのインデクシングにも対応していて、ファイルについてのコメントやタイトル(ファイル名とは別)も、メタデータとして保持することができる
  • ファイルシステム側からコンテンツを登録することも、Ploneの側からコンテンツを登録することも可能

Ploneの稼動するサーバは、ActiveDirectory (AD) のメンバサーバーだったので、ファイルシステムからの書き込みはADで定義した編集用のユーザグループに許可していました。

同様に、Ploneを通しての書き込みも、PloneとLDAP(AD)の連携機能で、ADの編集用グループをPloneのメンバーグループに割り当てて権限設定を行っていました。

この機能があったおかげで、チーム内のPlone利用がどんどん進みました。特に、たくさんのコンテンツを一度に公開する場合、WebUIでアップするのは面倒です。定期的にプログラムで生成した、たくさんのコンテンツを公開する必要があったのですが、PloneにはWebDAV機能があると言っても、Windowsのクライアントがあまりよくなかったりして、ほとんどファイルシステム側からの操作が中心でした。

さて、Plone2.5が出るようになってから、残念ながら、PloneLocalFolderNGの開発は止まってしまったようでした。
プロダクトの公開はされているものの、Plone3には対応していませんので、このまま利用するわけには行きません。

何か代替案を考えないと…と、いろいろ探したところ、Reflecto というプロダクトを発見。
使ってみると、LocalFolderNGほど自由度は無く、メタデータの付加などは出来ないけれど、ローカルファイルシステムのファイルをPloneを通して表示でき、また、コンテンツのインデクシングも可能な模様です。

※ただし、文字コードはPloneサイトにあわせたもの、(常はUTF-8)でないといけません。

もう1つ、ファイルシステムにドキュメント(バイナリデータ)を保存するためのプロダクトとして、plone.app.blob というものがありました。

ZopeのDBはわたしにとってはブラックボックスなので、まずはこちらも導入してみました。
一見、何事もなくファイル(Office系ドキュメント)のアップロードや登録ができるようになったのですが、『実際のファイルはどこにあるんだろう?』という、根本的な疑問が沸いてきました…。

blobを利用するに当たって、zope.confに格納先を指定するのですが、その下を見てみると、0x00 ….. というディレクトリが何階層もできており、その先に、xxxxxx.blobというファイルがありました。

たとえば、こんな感じです。

0x00/0x00/0x00/0x00/0x00/0x16/0x4b/0x6e/0x0xxxxxxxxx.blob

ファイル名は、なにかしらハッシュを使って生成しているのだと思われます。でも、本来のファイル名を推測できる情報が、パスだけでは分からないので、plone.app.blobを使った場合も、ブラックボックスが単純に増えた…という感覚です(^^;

データの出し入れがWEBのインタフェースを通したアクセスのみの場合は、これで問題ないと思いますが、やはりファイルシステム側から更新することも、ZOPEを介さずに単独でデータを開くことも難しくなってしまいました。

Data.fsの肥大を防ぐという意味ではOKなのですが、なかなか悩ましいところです。

やっぱり、自分でプロダクト作るしかないのかな…と思うこのごろです。

2009-11-25

TS Web Access が効かない~!

もろもろの理由で、Windows Server 2008 R2をインストールすることとなりました。

2008に触るのは、これがはじめて。

せっかくなので、新機能のTS Web Accessを試そうといろいろ設定をしてみました。

ローカルでのTS Web Accessは動作確認が取れたので、クライアントマシンから、Web経由でアクセスしようと試みたのですが、どういうわけか、以下のメッセージが出て、機能が使えません(x_x)

リモート デスクトップ サービスの ActiveX クライアント コントロールを使用できません

クライアントマシンは、Windwos XP SP3で、RDCクライアントもちゃんと6.1にUpdateしています。MSの推奨環境をチェックしても、その設定どおりなのに先に進めません…。

日本語で検索しても、これといった解決策が見つかりません。

ついに、英語のサイトも範囲を広げたところ、以下のBlogがヒット。

Remote Desktop Services (Terminal Services) Team Blog

こちらのエントリの最後のほうに、わたしと同様の現象らしきコメントがあり、そちらのアドバイスには、レジストリキーを削除したら動いた、との記載がありました。

regeditで確認すると、なるほど、そういうキーがあります。

OSは再インストールしてもいいや、という気でいたので、ためしにキーを削除してみると、IEの再起動、OSの再起動をしなくとも、あっさり解決(^_^;;;;

  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{7390f3d8-0439-4c05-91e3-cf5cb290c3d0}
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{4eb89ff4-7f78-4a0f-8b8d-2bf02e94e4b2}

なお、レジストリをいじった際の不具合は、一応自己責任ということになりますので、ご了承を…。

remoteTS