2016-07-05 12 views
0

BLOBコンテナの詳細を取得するには、下記のREST APIを使用しています。 VhdはBlobコンテナ名です。私たちは、プロキシサーバーの詳細(例:SQUIDプロキシ)を使用する場合AzureストレージBLOB:https://(storageAccountName).blob.core.windows.net/vhd?restype = container&comp =プロキシを使用していないリスト

https://(storageAccountName).blob.core.windows.net/vhd?restype=container&comp=list

ストレージREST API呼び出しにアクセスするために、我々は下記のエラーを取得しています。 BLOBの

はHttpResponse :: ResourceNotFound 指定されたリソースは存在しません。 RequestId:6dc7e6f2-0001-000d-30f9-d56eb3000xxx

我々は、プロキシサーバーなしで同じのREST APIにアクセスする場合、我々は有効な応答を得ているし、それが働いています。

+0

質問に基づいて、プロキシが重要な部分であるようです。そして、あなたは前記代理人の詳細を含まなかった。これは、インフラストラクチャに関連しているため、ServerFaultとStackOverflowのどちらにも適しているようです(ただし、プロキシやネットワークのキャプチャについての詳細な説明はありません)。 –

+0

どのようなプログラミング言語(C#、PHPなど)を使用していますか?私の推測では、どこかにプロキシ設定を指定する必要があるが、その答えは実行環境に依存するということだ。 –

+0

私たちはJavaを使用しており、プロキシの設定は有効です。他のREST APIのために働いています。ストレージアカウントを取得するために使用しているREST APIでは、ストレージキーはプロキシサーバーと連携して動作しています。 squidプロキシは、(10.10.10.10)のように、プロキシ経由ですべてのリクエストを渡します。 – vijay

答えて

1

通常、squidを使用するのはバックエンドサービスのリバースプロキシですが、ここでは転送プロキシとしてsquid経由でストレージREST APIにアクセスしたいと考えています。 wikiページhttps://en.wikipedia.org/wiki/Proxy_server、SOスレッドDifference between proxy server and reverse proxy serverおよびblogを参照すると、両方の違いを知ることができます。

したがって、問題の解決策は、プロキシサーバーをフォワードプロキシとして構成することです。

  1. イカのために、あなたはHTTPSとforwordプロキシとして構成する方法を知っているイカwikiページhttp://wiki.squid-cache.org/SquidFaq/ConfiguringSquidhttp://wiki.squid-cache.org/Features/HTTPSを参照しようとすることができます。

  2. Apacheの場合、apacheのdocページhttp://httpd.apache.org/docs/2.0/mod/mod_proxy.html#forwardreverseを参照してください。

次に、フォワードプロキシを正常にセットアップした後で、プロキシサポートを有効にするためにJavaのシステムプロパティを設定します。

Java用のプロキシをサポートする方法は2通りあります。

  1. コマンドラインJVM設定:プロキシ設定がコマンドライン引数を経由してJVMに与えられる。

    コードでシステムのプロパティを設定する
    java -Dhttp.proxyHost=proxyhostURL -Dhttp.proxyPort=proxyPortNumber -Dhttp.proxyUser=someUserName -Dhttp.proxyPassword=somePassword HelloWorldClass 
    
  2. :JVMように、Javaコードに次の行を追加しますプロキシを使用してHTTP呼び出しを行います。ネットワーキング&プロキシ用

    System.setProperty("http.proxyPort", "someProxyPort"); 
    System.setProperty("http.proxyUser", "someUserName"); 
    System.setProperty("http.proxyPassword", "somePassword"); 
    System.setProperty("http.proxyHost", "someProxyURL"); 
    

詳しい情報は、Javaで&プロパティは、http://docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.htmlhttp://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.htmlを参照してください。

1

私たちは解決策を得ました。問題は、一度にすべてのストレージアカウントに対して非同期呼び出しを呼び出すことです。たとえば、5つのストレージアカウントがあり、それぞれのストレージが5つのvhdコンテナを所有していて、5つの応答を待っているコールバックで5つをすべて呼び出すと、forループでは、この場合は機能しません。私たちはそれぞれの呼び出しを別々に呼び出しています。

関連する問題