Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell Azure存储:使用AzCopy.exe将文件夹从blob存储复制到另一个存储帐户_Powershell_Azure_Azure Storage Blobs_Azure Powershell_Azcopy - Fatal编程技术网

Powershell Azure存储:使用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,我能够成功复制整个容器。但是,我不知道如何在名称包含文件夹结构的blob上进行复制。我尝试了以下方法:

.\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名称匹配文件模式