Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: File-MMagic(OpenOfficeのfiletype)



寺西です。

Yukio USUDA wrote:
> 
> OpenOfficeの文書ファイルは元々XMLファイルを圧縮したzipファイル
> なのでFile-MMagicはzipファイルとして認識します。
...
> しかし、他のファイルがcontent.xmlの前にくる例があり、magic情報だ
> けでは一般のzipファイルと区別できないことがわかりました。

OpenOfficeの文書である zip ファイルには、OpenOffice と識別できる
キーワードが都合よくコメントに入っているといったことはないので
しょうか?
# そんなに都合よくなってないだろうけど...。

>  (複数ファイルに展開される圧縮ファイルを通せるフィルターはいま
>   のmknmzのままでは書けないですよね)

現在はアーカイブファイルには対応していません。
アーカイブファイルへの対応は将来したいとは思っていました。

# ただ、それはアーカイブファイルに含まれる個々の文書を処理する
# ことを考えていましたので、今回のように複数のファイルで全体と
# して意味をなすようなものがあるとは、考えていませんでした。

それはともかく、現状ではやっぱり

> 2.mknmzでの判定箇所を修正し mtype_mがapplication/x-zipで
>   ある場合は拡張子情報 mtype_nを併用して決定させる。

とするのが良いかと思います。

将来的にはファイルタイプを階層的にチェックするというか、
magic 等で中分類した後、中身に応じて小分類するといった仕組みが
必要になるのではないかと思います。
x-type 付きのものの判断もそうすればすっきりするのではないかと
思います。

以下、余談。

MMagic に拡張ができるのなら、MMagic から外部関数を呼び出す仕組み
を作って、その関数内でファイルタイプを判断するというのも良い
かもしれません。(セキュリティ上、危険?)
Special や Magic では判別できないものには有効ですね。
今回の場合だと、unzip -l filename の結果に content.xml があれば、
1 を、含まれなければ 0 を返す関数を渡すというイメージです。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E