2011-06-27 6 views
1

ローカルのPHP Webアプリケーションが毎日新しいコンテンツと更新されたコンテンツで更新されています。これはMYSQL5のストアです。ファイルシステム内の画像とライブサーバの同期

私はまた、関連するイメージのファイルシステムを維持しています。これは、mysqlのテーブルによって追跡されます。私はblobのルートをダウンしていない - これは、Linuxのファイルシステムを使用しています。

データを毎日更新したら、画像をサーバーと同期させる最も良い方法は何ですか?

私はPHP5を使用していますが、それは動作する外部スケジューリングプログラムに有害ではありません。

私のイメージは、このような順序で格納されています

media/id/imagename.jpg 

すなわち。 rsyncのように、または、複製/共有ファイルシステムを使用する -

media/123/123_1.jpg 
media/123/123_2.jpg 
media/1234/1234_1.jpg 
media/1234/1234_2.jpg 

答えて

1

Nomrally同期したファイルを保存する方法についての質問への答えは、仕事のために設計されたツールを使用することです。しかし、あなたのケースでは、おそらくmysqlレコードにファイルの状態を反映させたいと思っています。

これを行うには、1組のPHPスクリプト(送信側に1つ、受信側に1つ)を書くことをお勧めします。ここにセキュリティを追加するには、受信側で古いデータをキャプチャするのではなく、受信側でメタデータを提供する要求を送信側のサーバーに依頼します。受信側は元のイメージデータをポーリングしますコピーを作成します(これが完了したらmysqlレコードを書き込みます)。

何らかのトランザクションコントロールを実装することも考えてみましょう。つまり、すべてのファイルをコピーせずに両端が同期していることを認識することができます。

+0

私が前バージョンで実装していることは正直なことですが、あまりにも多くの情報をポーリングしていたのですが、これはレコードベースで非常に長い時間がかかっていました。 私はそれを一度にすべて実行し、一度にアップロードするのが最善であると考えました。私がmysqlのマスターとスレーブの同期をとった場合、大きなアップロードまでイメージは表示されません。 HELP! – user492681

+0

OK - なぜ、mysqlレプリケーションを使用してメタデータをコピーし、404ハンドラでファイル複製を実装しないのですか? – symcbean

+0

具体的には、404ハンドラに関する詳細を教えてください。あなたはこれでどこに行くのかわからない。ありがとう – user492681

関連する問題