问题
我开始使用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标头的值,包括签名。
我做了什么
<accounts>
<account name="devstoreaccount1" authKey="Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==" />
</accounts>
一些搜索返回this,这导致我检查我的模拟器设置的时间(为此我称之为http://127.0.0.1:10000/devstoreaccount1/sascontainer
)。响应是一个错误但这显示模拟器设置为UTC时间,这比我的计算机时间晚了1小时,我已经允许在我的脚本中
下载Microsoft Azure存储资源管理器并通过该工具成功连接。我试图在这个工具中使用一些有用的东西帮助我,但是无法这样做
问题 如何通过powershell
连接到azure存储模拟器答案 0 :(得分:0)
要访问存储模拟器,我们可以使用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
。请参阅您提到的guide。
答案 1 :(得分:0)
我遇到了同样的问题,但是在问题描述中找到了解决方案。 我所需要做的就是调整时间(先关闭然后再进行自动时间调整)。
在我的情况下,相同的PowerShell脚本,昨天工作的今天停止工作。 有什么变化?实际上,我刚刚重新启动了笔记本电脑并登录了ubuntu帐户,然后重新启动回了Windows。它将时间转移了几个小时。我知道此错误,但通常我不太在意。 但是在使用在线服务时,可能会导致诸如此类的身份验证问题。