Azure BLOB をローカル ファイル システムに自動同期して、BLOB がコンテナーに追加されるたびにイベントが発生し、ローカル フォルダーにダウンロードできるようにする方法があるかどうかを知りたいです。
これまでのところ、ローカル ファイル システムから Azure BLOB に同期できますが、その逆はできません。
ポーリングを使用する場合、どのくらいの頻度でポーリングする必要があり、パフォーマンスにどの程度影響しますか?
Azure BLOB をローカル ファイル システムに自動同期して、BLOB がコンテナーに追加されるたびにイベントが発生し、ローカル フォルダーにダウンロードできるようにする方法があるかどうかを知りたいです。
これまでのところ、ローカル ファイル システムから Azure BLOB に同期できますが、その逆はできません。
ポーリングを使用する場合、どのくらいの頻度でポーリングする必要があり、パフォーマンスにどの程度影響しますか?
ブロブやコンテナーを監視する方法がないため、これは自分で管理する必要があります。つまり、コンテナー(またはblob ) の eTag をチェックして、コンテンツが更新されているかどうかを確認できます。
ポーリングに関しては、GET を実行するたびに、トランザクション ヒットが発生します。非常にコストがかかるわけではありません (10 万トランザクションあたり 0.5 ペニー): 1 秒ごとに 1 回ポーリングすると、毎月 15 セント (ポーリングを実行するロール インスタンスあたり) を費やしたことになります。ただし、特にストレージ関連の他のアクティビティが同時に発生している場合(キューポーリングなど)は、少し積極的だと思います。
これは、BLOB コンテンツが更新される頻度と、ローカル キャッシュがどれだけ最新である必要があるかによって決まります。
また、アップロードされたオブジェクトを受け取り、それを BLOB ストレージに格納し、実行中のすべてのインスタンスに更新があることを通知するアップローダー サービスを構築することも検討できます (更新された BLOB への URL を含む)。これにはサービス バス pub/sub を使用しますか? アプリのアーキテクチャとコンテンツのアップロード方法についてはわかりません。これはうまくいくかもしれませんし、うまくいかないかもしれません。
これを行うコードがあります。https://github.com/smarx/noderole/blob/master/WebRole/Sync/OneWayBlobSync.csを参照してください。
これを見ましたか?Windows Azure ストレージへのファイルの同期
少し時代遅れですが、おそらく良い出発点です。