Kuwataさんがそろそろ、Google AppEngineの上に最小抽象ファイルシステムを作り始める気配なので、その後気付いたことをメモしておきます。
通常のファイルシステムを使ったmafsを、Erlangでちょっと書いてみたのですが、たいした問題なくできそうだと見当は付きました。見当が付いたので完成してないですけど ^^; 少し問題になるのはメタデータですね。
ファイルまたはディレクトリーのメタデータとして次の9つを挙げました。
- contentLength
- contentType
- created
- lastModified
- readOnly
- isText
- textEncoding
- hidden
- executable
このなかで、ベースとなるプラットフォームに依存しないで確実に取れるのは、次の3つだけです。
- contentLength
- lastModified
- readOnly
readOnlyは意外と使わないので、ほんとに最小なメタデータは、 contentLength と lastModified の2つだけでしょう。hiddenはうまく取れないし、使わないので「要らない」なー。created はあったほうがいいけど、必須じゃない。
次のメタデータは、ファイル名(主に拡張子)と運用のコンベンションから求めることになると思います。
- contentType
- isText
- textEncoding
- executable