我刚开始使用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等代码的引用。真的很感激一些帮助。
答案 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
,设置为True
或False
。如果您使用的订阅设置为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(我相信其中很大一部分是对凭据的查找速度较慢),值得一试