技术问询:将Azure Blob内容按指定结构复制到本地服务器
实现Azure Blob到本地服务器的内容复制与目录映射
需求说明
需将Azure Blob中的内容复制到本地服务器,具体映射规则如下:
https://<blob>/prod/backup/node1 -> f:\backup\cluster https://<blob>/prod/backup/node2/<RandomFolderName>/forests/* -> f:\backup\cluster\forests https://<blob>/prod/backup/node3/<RandomFolderName>/forests/* -> f:\backup\cluster\forests期望本地最终文件夹结构:
f:\backup\cluster\ f:\backup\cluster\forests\<forest2-content-folder> f:\backup\cluster\forests\<forest3-content-folder>
实现方案(使用AzCopy)
AzCopy是Azure官方命令行工具,适合处理Blob与本地的批量复制,支持通配符匹配目录,可直接满足随机文件夹的映射需求。
步骤1:复制node1内容到本地cluster目录
替换命令中的<storage-account-name>(存储账户名)和<container-name>(容器名),若用SAS令牌验证,将SAS参数追加到Blob URL末尾:
azcopy copy "https://<storage-account-name>.blob.core.windows.net/<container-name>/prod/backup/node1/*" "f:\backup\cluster" --recursive=true
步骤2:复制node2下随机文件夹中的forests内容
用通配符*匹配<RandomFolderName>,自动遍历所有子文件夹并复制forests下的内容到本地目标目录:
azcopy copy "https://<storage-account-name>.blob.core.windows.net/<container-name>/prod/backup/node2/*/forests/*" "f:\backup\cluster\forests" --recursive=true
步骤3:复制node3下随机文件夹中的forests内容
执行与node2相同逻辑的命令:
azcopy copy "https://<storage-account-name>.blob.core.windows.net/<container-name>/prod/backup/node3/*/forests/*" "f:\backup\cluster\forests" --recursive=true
关键说明
--recursive=true参数会递归复制所有子目录与文件,确保Blob中的层级结构完整映射到本地。- 若使用Azure AD身份验证,先通过
azcopy login完成身份验证,无需附加SAS令牌。 - 执行完成后,本地会自动生成期望的目录结构,node2和node3的forests子文件夹将直接合并到
f:\backup\cluster\forests目录下。
内容的提问来源于stack exchange,提问作者subsoft
相关产品推荐
相关产品推荐

