bugfix> azure > 投稿

問題

私は紺bのブロブストレージを始めていますのでこのガイド 始めましょう。ストレージエミュレーターにローカルに接続しようとしています。Powershellを使用して新しいコンテナーを作成しようとしていますが、次のスクリプトを使用している場合

$context = New-AzureStorageContext -StorageAccountName "devstoreaccount1" -StorageAccountKey "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
New-AzureStorageContainer "sascontainer" -Permission Off -Context $context
$now = Get-Date
New-AzureStorageContainerSASToken -Name "sascontainer" -Permission rwdl -ExpiryTime $now.AddHours(-1.0) -Context $context -FullUri

私はこのメッセージを受け取ります:

New-AzureStorageContainer : The remote server returned an error: (403) Forbidden. HTTP Status Code: 403 - HTTP Error Message: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.

私がやった事

  • azureStorageEmulator.exe.configを確認しました

<accounts> <account name="devstoreaccount1" authKey="Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==" /> </accounts>

  • 少しの検索が返されましたこの これにより、エミュレータが設定されている時間を確認することができました(これを行うために、 http://127.0.0.1:10000/devstoreaccount1/sascontainer を呼び出しました )。応答はエラーでしたが、これはエミュレーターがコンピューター時間より1時間遅いUTC時間に設定されていることを示しています。これはスクリプトで許可されています

  • Microsoft Azureストレージエクスプローラーをダウンロードし、そのツールを使用して正常に接続します。私はこのツールで役立つフィンを探してみましたが、できませんでした

質問 PowerShell経由でAzure Storageエミュレーターに接続する方法

回答 2 件
  • ストレージエミュレーターにアクセスするには、 New-AzureStorageContext -Local を使用できます   または New-AzureStorageContext -ConnectionString "UseDevelopmentStorage=true"

    さらに詳細に、 -ConnectionString を設定することもできます  と

    "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;"
    
    

    StorageAccountNameとStorageAccountKeyのみを指定したのは、 http://devstoreaccount1.blob.core.windows.net にアクセスすることです  オンライン。デフォルトではサービスエンドポイントは <http|https>://<account-name>.<service-name>.core.windows.net であるため 、ローカル開発では http://127.0.0.1:1000<0-2>/devstoreaccount1 です 。あなたが言及したガイドを参照してください。

    およびpowershellドキュメントの参照。

  • 私は同じ問題を抱えていましたが、問題の説明で解決策を見つけました。 そのために必要なのは、時間を調整することです(自動時間調整をオフにしてからオンにします)。

    私の場合、同じPowerShellスクリプトで、昨日機能していたものが今日機能しなくなりました。 何が変わった?実際、私はラップトップをリブートし、ubuntuアカウントにログインした後、Windowsにリブートしました。数時間シフトします。私はこのバグを知っていますが、通常はあまり気にしません。 しかし、オンラインサービスを使用すると、そのような認証の問題が発生する可能性があります。

あなたの答え