Get-AzureStorageBlob throws无法找到您的azure存储凭据

时间:2013-09-13 21:51:09

标签: powershell azure azure-storage-blobs

我刚开始使用Azure,但我遇到使用PowerShell cmdlet处理存储帐户的问题。

我在该存储帐户中创建了一个存储帐户和一个容器。接下来,我安装了Azure Powershell SDK和命令let等,并导入了publishsettings文件。当我执行Get-AzureSubscription或Get-AzureStorageAccount命令时,它会在PowerShell控制台中正确显示我的订阅以及各种存储端点。

但是,如果我执行Get-AzureStorageBlob调用或Set-AzureStorageBlobContent,则会出现以下错误

Get-AzureStorageBlob : Can not find your azure storage credential. Please set current storage account using
"Set-AzureSubscription" or set the "AZURE_STORAGE_CONNECTION_STRING" environment variable.

我确实在这里结束了。谷歌搜索这个错误字符串只会引起对Github等代码的引用。真的很感激一些帮助。

3 个答案:

答案 0 :(得分:20)

是的,所以我终于成功了!以下是有关如何使用PowerShell在Azure中创建blob并在其中存储文件的总体详细信息。

http://www.nikgupta.net/2013/09/azure-blob-storage-powershell/

$context = New-AzureStorageContext -StorageAccountName FunkyStorage -StorageAccountKey {Enter your storage account key here}

Set-AzureStorageBlobContent -Blob "MyFunkyBlob" -Container FunkyContainer-File "c:\temp\1.txt" -Context $context -Force

答案 1 :(得分:3)

您可能需要设置要使用的“当前”订阅。为此,您必须运行Select-AzureSubscription

如果您运行Get-AzureSubscription,则会在发布设置中看到所有订阅。其中一个订阅应设置为默认订阅。当您滚动浏览结果列表时,您会看到每个订阅的一个属性IsDefault,设置为TrueFalse。如果您使用的订阅设置为False,请运行:

Select-AzureSubscription -SubscriptionName mysub

希望能够解决您遇到的问题。

答案 2 :(得分:2)

快速FYI:你可以做另一个(更快的方式)。我在Windows PowerShell上构建了一个与Azure大量集成的Web语言。它被称为PowerShell Pipeworks

您可以使用4个cmdlet与Blob进行交互:

  • 获取-斑点
  • 导入-斑点
  • 导出-斑点
  • 移除-斑点

全部采用-StorageAccount和-StorageKey,以及-StorageAccountSetting和-StorageKeySetting。您可以将信用卡保存到磁盘(或使用Add-SecureSetting在Web应用程序中使用)。一旦任何blob cmdlet具有存储帐户,它将继续重用它。

Export-Blob也很方便,因为你可以在目录中输入它,它会创建正确的内容类型,并提供-Public,它将把它存储的容器标记为公共。

这些cmdlet比Azure更老(约3个月),仍然是执行时间的3/4(我相信其中很大一部分是对凭据的查找速度较慢),值得一试