如何使用PowerShell在存储账户中从变量内容直接创建Blob?
基于内存变量直接创建Azure Blob的方法
你不需要先将$fileContents写入本地临时文件再上传,直接使用Azure PowerShell Az 模块的 Set-AzStorageBlobContent cmdlet 的 -Content 参数,即可直接把内存中的内容写入Blob存储。
操作步骤及完整代码
- 首先确保你已经安装了
Az.Storage模块,若未安装可执行以下命令安装:
Install-Module -Name Az.Storage -Scope CurrentUser -Force
- 完整执行代码示例:
# 你已定义的内容变量 $fileContents= @" { 'my data':'lots of stuff' } "@ # 登录Azure账号,若已登录可跳过该步骤 Connect-AzAccount # 切换到存储账户所在的订阅,若只有一个订阅可跳过 Set-AzContext -Subscription "替换为实际的订阅ID或订阅名称" # 获取存储账户上下文,两种常用方式选择其一即可 # 方式1:使用存储账户密钥验证 $context = New-AzStorageContext -StorageAccountName "替换为你的存储账户名称" -StorageAccountKey "替换为你的存储账户访问密钥" # 方式2:使用当前登录的Azure AD账号验证(更安全,要求账号有容器的Blob写入权限) # $context = New-AzStorageContext -StorageAccountName "替换为你的存储账户名称" -UseConnectedAccount # 直接基于内存内容创建Blob Set-AzStorageBlobContent -Container "替换为目标容器名称" ` -Blob "自定义Blob名称,例如test.json" ` -Content $fileContents ` -Context $context ` -Properties @{ContentType = "application/json"} ` -Encoding UTF8
参数说明
-Blob:你要创建的Blob的完整名称,支持包含路径前缀,例如folder1/data.jsonContentType:可以根据你的内容类型调整,比如纯文本填text/plain,此处示例是JSON内容所以设置为application/json,不指定的话默认会设为通用的application/octet-stream-Encoding UTF8:如果内容包含中文、特殊符号等非ASCII字符,添加该参数可避免出现乱码
内容的提问来源于stack exchange,提问作者Alex Gordon
相关产品推荐
相关产品推荐

