2012-03-25 5 views
1

私はS3サービスを管理するコマンドラインツールをコーディングしています。私のローカルマシン上で、すべてのものは、それが実行されなければならないサーバー上で動作し、次のメッセージで失敗します。接続がJavaのamazon SDKでS3サービスのために拒否されました

s3 = new AmazonS3Client(credentials,clientConf); 

clientConfのみ設定します。

Error Message: Unable to execute HTTP request: Connection to http://s3.amazonaws.com refused 

私は次のコードとの接続が作ります私はHTTPSに接続するための問題かもしれないと思ったが、私は同じ結果を持っています。

今、サーバは、以下の構成を有する:

Debianソースからインストール6 64ビット

LAMP

OpenSSLがソースからインストール

Javaが配布パッケージのパッケージからインストールを

これはネットワーク構成です:

auto eth0 
iface eth0 inet static 

address XX.XX.XX.XX 
netmask 255.255.255.255 
broadcast XX.XX.XX.XX (same as address) 

auto eth0:0 
iface eth0:0 inet static 

address XX.XX.XX.XX 
netmask 255.255.255.255 
broadcast XX.XX.XX.XX (same as address) 

auto eth0:1 
iface eth0:1 inet static 

address XX.XX.XX.XX 
netmask 255.255.255.255 
broadcast XX.XX.XX.XX (same as address) 

post-up route add 10.255.255.1 dev eth0 
post-up route add default gw 10.255.255.1 

wget、telnet、curl、すべてが動作しますが、これ以外は、私は2つのSSLともう1つのIPを他のサイトに持っているため、3つのネットワークインターフェースを持っています。

この作業を行うためにclientConfをどのように設定する必要がありますか? Javaの問題ですか?ネットワークの問題?少なくとも、どのように私はより多くのデバッグ情報を得ることができますか?私はAmazonClientException例外をキャッチしようとしましたが動作しません。

ありがとうございます。

よろしくお願いいたします。

答えて

2

This has been reported as a bug in the Amazon S3 API。 Quoth [email protected]

これはSDKのバグのようです。この問題は、クライアント 構成オブジェクトは、DynamoDBのセッションを確立するために使用するセキュリティトークンサービスクライアント と共有されていることであり、それは (ダイナモとは違って)HTTPプロトコルを受け付けません。カップルの回避策があります。

1)STSSessionCredentialsProviderの独自のインスタンスを作成し、 あなたDynamoDBのクライアントに提供し、または

2)の代わりにClientConfigurationでプロトコルを指定する、 はを呼び出して、それを指定しますsetEndpoint( "http:// ...")

このバグの解決方法について説明します。

私は今のところ回避策のいずれかを使用することをお勧めします。あなたの接続が正常に動作するように幸運を祈ってください。

Additional documentation and workarounds

+0

は、私はこれを試してみましたが、それは、私はまだ同じ問題を抱えているS3では動作しませんようです。 –

+0

@shadow_of__soul Hmn。それは困惑です。あなたが言うように、問題を追跡するために使用できるより多くのデバッグ情報が必要です。デバッガでクライアントを実行できますか(たとえば、IntelliJまたはEclipseが提供するデバッグ機能)、例外が発生する直前にブレークポイントを設定できますか?その場合、接続を試みるときに 'catch(Exception e)'(特に 'RuntimeException'をキャッチします)を実行するとどうなりますか?ここの標準的なアドバイスをお手伝いして申し訳ありませんが、私はあなたがまだ試したことについて良い範囲を持っていません。 – MrGomez

+0

問題はこれがサーバーでのみ発生し、ローカルではコードが完全に機能するということです。コマンドラインからデバッガを実行する方法はありますか? (私は 'java -jar app.jar'のアプリケーションを実行しています) –

関連する問題