2011-07-24 99 views
6

私は以下のコードを使用してS3ストレージにファイルを配置しています。私はそれが非常に遅いと感じています。ストップウオッチは18秒+を示した。どんな提案やその他の経験ですか?Amazon S3 PutObjectが非常に遅い

 // upload the file to S3 
     AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey, secretAccessKey); 

     PutObjectRequest request = new PutObjectRequest(); 

     FileStream fs = new FileStream(sourceFileName, FileMode.Open); 

     request.WithInputStream(fs); 
     request.WithBucketName(bucketName); 
     request.WithKey(keyName); 
     Stopwatch stp1 = new Stopwatch(); 
     stp1.Start(); 
     client.PutObject(request); 
     stp1.Stop(); 
     fs.Close(); 

このコードはC#です。私はamazon .net sdkを使用しています。

ファイルのサイズは56Kでアップロード帯域幅は1.87Mbpsです。

+1

どのように大きなものは、あなたがアップロードされたBufferSizeを変更する必要がありますか? 18Tは1TBで非常に高速です。 – Mat

+2

ファイルのサイズはどれくらいあり、インターネットのアップロード帯域幅は何ですか? –

+0

ファイルは56Kで、私の帯域幅は1.5mbpsです。 – Jeff

答えて

8

私は最近、Windowsの「インターネットオプション」の自動プロキシ検出設定によって引き起こされた問題とよく似ています。

Amazon SDKはWebRequestを使用してHTTP要求を行い、デフォルトではWebRequestはローカルプロキシを検出するためのコンピュータの「インターネットオプション」設定に準拠しています。幸いにもWebRequestは、nullに設定されている場合、自動プロキシ検出を削除する静的プロパティWebRequest.DefaultWebProxyを持っています。

あなたがAmazonS3の使用を開始する前に、あなたがやらなければならないことは、nullに設定されています

WebRequest.DefaultWebProxy = null; // here 

AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey, secretAccessKey); 

[...] 

それは、この静的プロパティは、あなたがするたびにアプリケーションドメインごとに一度設定する必要はないということは注目に値しますAmazonS3オブジェクトを作成します。

代替アプローチは:

Windows Control Panel > Internet Options > Connections > Lan Settings 

と "設定を自動的に検出" UN-チェック:あなたは、マシンを再構成してもかまわない場合

に行くことです。この方法を使用する場合は、DefaultWebProxyプロパティを設定する必要はありません。

さらに詳細:あなたの興味があればそれはここに私の答えよりも多くの詳細を持っている

How to turn off the automatic proxy detection in the `AmazonS3` object?

:私が問題に遭遇したとき

は私がSOに、次の質問をしました。

+0

にも同じ問題がありました!答えをありがとう - これは今私のプログラムの15秒をノックアウト.. – iamserious

+0

@悲惨な喜んでそれが助け! :) – InvertedAcceleration

3

あなたはAmazonS3Configに

var config = new AmazonS3Config 
{ 
    BufferSize = 65536 // 64KB Use a larger buffer size, normally 8K default. 
}; 
+1

私はhttp、multipartを試しましたが、実際にはBufferSizeの調整のようなアップロード速度に大きな変化はありませんでした。 BufferSizeはアップロード速度を5倍向上させます。 – Tim