2009-06-13 9 views
1

PHPのアプリケーションをビルドしました。ユーザーのホームディレクトリにあるすべてのファイルを表示します。このディレクトリはWindows、Mac、Linuxのネイティブエクスプローラからアクセスできるようにsambaでも利用できます。すべてのファイルにIDを付けることで、すべてのファイルにタグを割り当てることができました。これをどうやって行うのですか?あなたはファイルのハッシュを作成し、そのファイルハッシュが同じファイルであると結論づけるかどうかを調べるでしょうか?アプリケーションでSMBのファイルをどのように追跡しますか?

ファイルやフォルダを移動するたびにsambaを送信して何かを送信することはできますか?

答えて

0

あなたのプラットフォームがLinuxでインストールがかなり最近の場合、ファイルシステムの変更が行われたときにinotifyを使用してPHPコードを呼び出すことができます。 PHPマニュアルのこの部分を参照してください。

http://us3.php.net/manual/en/book.inotify.php

基本的な使い方は、あなたのPHPコードにコールバックしてSambaのディレクトリまたはディレクトリにウォッチャを追加することです。パフォーマンス上の理由から、inotifyがあなたのコードに興味のあるアップデートの種類だけを送るように伝えることができるかどうかを確認することは良い考えです。

しかし、inotifyは一定の期間が経過した後で更新/メッセージを削除します。したがって、ある時点で同期を維持するのに問題が発生します。 1つの解決法は、継続的にinotifyを使用して、各家庭のフルスキャンを定期的に実行して、データベースが反映されていることを確認します(またはタグが保存されている場所のどこでも)。

0

最初の質問に答えるには、ハッシュを作成することはもちろん可能です。ファイル上でmd5を使うだけで十分です。あなたのホームディレクトリにあるファイルをハッシュしながら衝突する可能性は非常に小さいです。 IMO私は言及する価値がないと言います。 そして、おそらく言うことはありませんが...私は少なくとも、ハッシュと完全なパスを格納するので、適切に移動したファイルを扱うことができ、実際には何かをファイルで実行します。

関連する問題