2009-05-21 22 views
2

多くのイメージを格納するアプリケーションを構築しています。 GoGrid.comには仮想化環境があり、クラウドストレージを活用したいと考えていました。CでUNCパスにアクセスする最善の方法

正確にどのように単語にこれをするわからないが、我々は(我々のコードに)ひどく非効率的と思われる画像を、配置または取得するために、UNCパスとcredsをを指定した場合は(切断する、画像を取得し、接続)

の場合私たちは大量の画像を持っているか、これを一度に多くのユーザーが実行しています。普通のサーバーをひっくり返すようです。

私の質問は、あなたのウェブサイトが実行されている巨大なドライブが不足しているので、これを達成するためにどのように目標を設定する必要がありますか?再び、私たちは、すべてが1つの素晴らしい傘の下にあるので、GoGridクラウドstargeとAmazon S3を選択しています。クラウドストレージは、UNCパスと特定のユーザー名/パスワードを使用してアクセスできます。

ありがとうございます!

答えて

0

時間の経過とともにファイルのアクセス方法を変更している可能性がある場合は、抽象的にしてください。簡単なUNC実装から始めましょうが、後でWebサービスまたはREST実装に変更することができます。

+0

マッピングされたドライブの種類を試して設定してから、コードを取得してマップされたドライブにファイルを置くのは意味がありますか(それぞれの要求に対してvs接続していますか?) – dpluscc

+1

私はあなただったら、 UNCパス、各要求に接続し、残りのシステムを稼動させる。それがうまくいけば、ファイルアクセス方法がパフォーマンス上の問題を引き起こしているかどうかを調べることにします。私はそれがあると仮定して時間を費やすことはありません。 –

0

以前は大量のアクセスサーバーで作業していませんでしたが、UNCパスにアクセスする非常に軽量なものを探しているような気がします。 Facebookは、軽量HTTP実装に基づくアーキテクチャと、単一の10TBファイルシステムを使用したロードバランシングのためのブレードサーバを備えていますが、あなたはまだそこにいるようには聞こえません。あなたが接続から抜け出すものを最大限にしたい場合は、接続/読み取り/切断のシーケンスで複数のファイルを取得しようとします。これにより、ユーザーは長く待たされることになり、20ミリ秒ほど遅くなるとGoogleのユーザーが20%減少するなどの結果につながることに注意してください。それを除けば、私はパスに単にアクセスするよりも速い方法を知らない。

+0

私はUNCに保存されているファイルにアクセスするのと同様の問題を抱えています。ユーザーは1分後に接続できますが、次の1分はできません。私は、アプリケーションがサーバーにアクセスしても接続が閉じられていないと思うが、System.IOのFile.CopyとFile.Existを使うだけだ。どのように「接続/読み取り/切断」シーケンスを明示的に管理するのですか? – flipdoubt

1

C#は、ネイティブオペレーティングシステムファイルI/Oを使用して、ネイティブパスのようなuncパスを使用できます。通常、あなたは "接続/取得/切断"しないで、むしろ一度設定されたリモートサーバへの接続は、ドライブをマッピングしたかのように保持されます。ドライブレターを持っていないからといって、接続がないというわけではありません。

また、ドライブをマップするか、Windowsでオフラインファイル機能を使用して、最も頻繁にアクセスされるファイルをローカルにキャッシュすることができます。

関連する問題