Powershell Azure存储:使用AzCopy.exe将文件夹从blob存储复制到另一个存储帐户
使用AzCopy.exe,我能够成功复制整个容器。但是,我不知道如何在名称包含文件夹结构的blob上进行复制。我尝试了以下方法:Powershell Azure存储:使用AzCopy.exe将文件夹从blob存储复制到另一个存储帐户,powershell,azure,azure-storage-blobs,azure-powershell,azcopy,Powershell,Azure,Azure Storage Blobs,Azure Powershell,Azcopy,使用AzCopy.exe,我能够成功复制整个容器。但是,我不知道如何在名称包含文件夹结构的blob上进行复制。我尝试了以下方法: .\AzCopy.exe /Source:https://sourceaccount.blob.core.windows.net/container /Dest:https://destaccount.blob.core.windows.net/container /SourceKey:sourceKey== /DestKey:destKey== /S /Patter
.\AzCopy.exe /Source:https://sourceaccount.blob.core.windows.net/container /Dest:https://destaccount.blob.core.windows.net/container /SourceKey:sourceKey== /DestKey:destKey== /S /Pattern:CorruptZips/2013/6
同时将/Pattern:更改为:
- /模式:CorruptZips/2013/6/*
- /模式:CorruptZips/2013/6/
- /模式:CorruptZips/2013/6/
所有的东西都说没有记录被复制。这是可以做到的,还是仅用于容器/文件复制?谢谢。请指定不带/S的命令: AzCopy/Source:/Dest:/SourceKey:key/DestKey:key/Pattern:abc.txt
您可以在中的“复制存储帐户中的单个blob”中找到信息。@naspinski,还有另一个名为
Azure Data Factory的工具可以帮助将文件夹从blob存储帐户复制到另一个帐户。请参考文章了解它,并按照以下步骤进行操作
在Azure上创建数据工厂
单击下面的Copy Data
按钮,移动到powercopytool
界面,并按照提示逐步复制文件夹
我试了几次才弄到这个。关键是:
如果指定的源是blob容器或虚拟目录,则
不应用通配符
换句话说,您不能通配符复制嵌套在容器中文件夹结构中的文件。您有两个选择:
- 使用不带模式的/S递归复制所有内容
- 使用/S并在模式中指定不带通配符的完整文件路径
例如:
C:\Users\myuser>azcopy /Source:https://source.blob.core.windows.net/system /Dest:https://dest.blob.core.windows.net/system /SourceKey:abc /DestKey:xyz /S /V /Pattern:"Microsoft.Compute/Images/vmimage/myimage.vhd"
编辑:哎呀,我的答案写错了 blob名称模式中的斜杠可能被解释为附加参数。尝试在参数值周围加引号/模式:“CorruptZips/2013/6/*”。我已经阅读了很多次“文档”,它对模式没有多大帮助,尤其是文件夹和/或通配符。另外,如前所述,我不是在复制单个blob,而是在复制目录。删除/S无效。blob容器下的文件夹“CorruptZips/2013/6”是否与“container/CorruptZips/2013/6”相同?如果是这样的话,这应该有效:/S/Pattern:CorruptZips/2013/6。您可以在中引用“/Pattern:“文件模式”部分。如果指定的源是blob容器或虚拟目录,则不应用通配符。如果指定了选项/S,则AzCopy将指定的文件模式解释为blob前缀。如果未指定选项/S,则AzCopy将根据准确的blob名称匹配文件模式