none
開発ストレージ上のクロスドメイン配置方法?

    質問

  • お世話になります

    Azure上のBLOBストレージの$rootにクロスドメイン用のclientaccesspolicy.xmlを配置して
    silverlight アプリからBLOBデータにアクセスはOKでしたが
    http://ccccc.blob.core.windows.net/xxxxx/test.xml

    開発用ストレージの$rootにもclientaccesspolicy.xmlを配置して
    silverlight アプリから同様にアクセスした場合には、
    セキュリティエラーが発生します
    http://127.0.0.1:10000/devstoreaccount1/xxxxx/test.xml

    開発用ストレージの場合は、clientaccesspolicy.xmlを
    どこに配置すればOKなのでしょうか?

    上記Azureストレージも、開発ストレージも
    ブラウザからはアクセス可能でした

     宜しくお願い致します

    2011年8月31日 10:33

回答

  • こんにちは。

    Windows Azureのストレージエミュレータは URLが http://127.0.0.1:10000/devstoreaccount1/xxxx~のように
    /devstoreaccount1/が付与されるため、Silverligihtアプリがclientaccesspolicy.xml を見つけることが出来ません。

    ※ルート直下のClientAccessPolicy.xmlを見に行くためだと思います。

    回避方法としては Ag.AzureDevelopmentStorageProxy といったProxyを使用する方法が考えられます。

    Ag.AzureDevelopmentStorageProxy
    http://agazuredevstoreproxy.codeplex.com/ 

    Ag.AzureDevelopmentStorageProxy は 既定で http://127.0.0.1:11000 で待ち受け、受けた要求は http://127.0.0.1:10000/devstoreaccount1/ に転送します。

    つまりSilverlightから見て http://127.0.0.1:11000/clientaccesspolicy.xml (Proxy)にアクセスすることで
    http://127.0.0.1:10000/devstoreaccount1/clientaccesspolicy.xml (Blobのエミュレータ上のURL)にアクセスできると思います。

    Blob上ではルート直下のコンテナは $root ですので、clientaccesspolicy.xmlファイルは $rootコンテナに置くのは変わりません。

    ※注意点としてAg.AzureDevelopmentStorageProxyは管理者権限で実行ください
    ※URL貼り忘れたので編集しました。 


    2011年8月31日 11:31
    モデレータ

すべての返信

  • こんにちは。

    Windows Azureのストレージエミュレータは URLが http://127.0.0.1:10000/devstoreaccount1/xxxx~のように
    /devstoreaccount1/が付与されるため、Silverligihtアプリがclientaccesspolicy.xml を見つけることが出来ません。

    ※ルート直下のClientAccessPolicy.xmlを見に行くためだと思います。

    回避方法としては Ag.AzureDevelopmentStorageProxy といったProxyを使用する方法が考えられます。

    Ag.AzureDevelopmentStorageProxy
    http://agazuredevstoreproxy.codeplex.com/ 

    Ag.AzureDevelopmentStorageProxy は 既定で http://127.0.0.1:11000 で待ち受け、受けた要求は http://127.0.0.1:10000/devstoreaccount1/ に転送します。

    つまりSilverlightから見て http://127.0.0.1:11000/clientaccesspolicy.xml (Proxy)にアクセスすることで
    http://127.0.0.1:10000/devstoreaccount1/clientaccesspolicy.xml (Blobのエミュレータ上のURL)にアクセスできると思います。

    Blob上ではルート直下のコンテナは $root ですので、clientaccesspolicy.xmlファイルは $rootコンテナに置くのは変わりません。

    ※注意点としてAg.AzureDevelopmentStorageProxyは管理者権限で実行ください
    ※URL貼り忘れたので編集しました。 


    2011年8月31日 11:31
    モデレータ
  • こんばんは

    k.buchiさん

    ありがとうございます

    プロキシを設定してOKでした

     

    1日中、試行錯誤していたので、スッキリしました 感謝です

     

     

     

    2011年8月31日 13:37