0

问题

我开始使用 azure blob 存储,因此请按照本指南开始。我正在尝试在本地连接到存储模拟器,并且我正在使用 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>

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

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

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

4

2 回答 2

0

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

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

于 2018-08-27T08:42:32.470 回答
0

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

以及powershell 文档的参考。

于 2018-05-25T19:06:55.517 回答