You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Cloud Shell中从Blob存储将文件复制到$HOME目录

将Azure Blob存储文件复制到Azure Cloud Shell的$HOME目录

方案一:使用AzCopy(修复常见错误)

AzCopy出错大多是权限不足或路径格式问题,按以下步骤操作:

  1. 生成Blob或容器的SAS令牌(在Azure门户中找到目标Blob/容器,选择“生成SAS”,勾选读取权限,设置有效期)
  2. 执行复制命令:
    • 复制单个文件:
      azcopy copy "https://<存储账户名>.blob.core.windows.net/<容器名>/<文件名>?<你的SAS令牌>" "$HOME/<保存的文件名>"
      
    • 复制整个容器内容(递归):
      azcopy copy "https://<存储账户名>.blob.core.windows.net/<容器名>?<你的SAS令牌>" "$HOME/<目标文件夹名>" --recursive
      

方案二:使用Azure PowerShell Cmdlet(更贴合PowerShell环境)

适合PowerShell新手,直接用Azure模块实现:

# 配置参数(替换为你的实际信息)
$storageAccountName = "your-storage-account"
$resourceGroupName = "your-resource-group"
$containerName = "your-container"
$blobName = "target-file.txt" # 单个文件名,复制容器则留空并加-Recurse

# 构造目标路径
$destPath = Join-Path -Path $HOME -ChildPath $blobName

# 获取存储账户上下文
$storageCtx = (Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName).Context

# 复制Blob到$HOME目录
Get-AzStorageBlobContent -Container $containerName -Blob $blobName -Destination $destPath -Context $storageCtx

如果要复制整个容器,修改最后一行:

Get-AzStorageBlobContent -Container $containerName -Destination "$HOME/container-files" -Context $storageCtx -Recurse

注意事项

  • 确保当前Cloud Shell的账户拥有Blob存储的读取权限(如Storage Blob Data Reader角色)
  • Blob名称区分大小写,输入时需与Azure门户中一致
  • SAS令牌需包含读取权限且未过期,生成时不要勾选不必要的权限

内容的提问来源于stack exchange,提问作者Chhaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 02:52:14