【问题标题】:New-AzureStorageContainer : The remote server returned an error: (403) Forbidden in powershellNew-AzureStorageContainer :远程服务器返回错误:(403)在PowerShell中禁止
【发布时间】:2018-11-05 00:35:28
【问题描述】:

问题

我开始使用 azure blob 存储,因此请按照 this guide 开始使用。我正在尝试在本地连接到存储模拟器,并且我正在使用 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 :远程服务器返回错误:(403) Forbidden。 HTTP 状态代码:403 - HTTP 错误消息:服务器未能验证请求。 确保 Authorization 标头的值格式正确,包括签名。

我做了什么

  • 检查了 azureStorageEmulator.exe.config

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

  • 一些搜索返回了this,这让我检查了我的模拟器设置的时间(为此我调用了http://127.0.0.1:10000/devstoreaccount1/sascontainer)。响应是一个错误,但这表明模拟器设置为 UTC 时间,比我的计算机时间晚 1 小时,这是我在脚本中允许的

  • 下载 Microsoft Azure 存储资源管理器并通过该工具成功连接。我试图在这个工具中寻找一些有用的东西来帮助我,但无法这样做

问题 如何通过 powershell 连接到 Azure 存储模拟器

【问题讨论】:

  • 我的建议对你有用吗?如果是这样,您可以接受,或者如果您还有其他问题,请直接提问。
  • 嗨,这个问题是正在进行的副项目的一部分,我将很快再次进行该项目。试过后我会告诉你的

标签: azure azure-storage azure-powershell azure-storage-emulator


【解决方案1】:

要访问存储模拟器,我们可以使用New-AzureStorageContext -LocalNew-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。因为默认情况下服务端点是&lt;http|https&gt;://&lt;account-name&gt;.&lt;service-name&gt;.core.windows.net,而在本地开发中它是http://127.0.0.1:1000&lt;0-2&gt;/devstoreaccount1。请参阅您提到的guide

以及powershell document的引用。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,但在您对问题的描述中找到了解决方案。 我只需要调整时间(关闭然后再打开自动时间调整)。

    在我的例子中,同样的 PowerShell 脚本,昨天工作的东西今天停止工作。 发生了什么变化?事实上,我刚刚重新启动了我的笔记本电脑并登录到我的 ubuntu 帐户,然后重新启动回 Windows。它改变了几个小时的时间。我知道这个错误,但通常我不太关心它。 但在使用在线服务时,可能会导致类似的身份验证问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多