azcopy syncazcopy sync

将源位置复制到目标位置。Replicates the source location to the destination location.


上次修改时间用于比较。The last modified times are used for comparison. 如果目标中的上次修改时间与当前时间更近,则会跳过文件。The file is skipped if the last modified time in the destination is more recent.

支持的配对包括:The supported pairs are:

  • 本地 <-> Azure Blob(可以使用 SAS 或 OAuth 身份验证)local <-> Azure Blob (either SAS or OAuth authentication can be used)
  • Azure Blob <-> Azure Blob(源必须包含 SAS 或可公开访问;可将 SAS 或 OAuth 身份验证用于目标)Azure Blob <-> Azure Blob (Source must include a SAS or is publicly accessible; either SAS or OAuth authentication can be used for destination)
  • Azure 文件 <-> Azure 文件(源必须包含 SAS 或可公开访问;应将 SAS 身份验证用于目标)Azure File <-> Azure File (Source must include a SAS or is publicly accessible; SAS authentication should be used for destination)

sync 命令与 copy 命令的不同之处体现在以下几个方面:The sync command differs from the copy command in several ways:

  1. 默认情况下,递归标志为 true,sync 会复制所有子目录。By default, the recursive flag is true and sync copies all subdirectories. 如果递归标志为 false,则 sync 只复制目录中的顶级文件。Sync only copies the top-level files inside a directory if the recursive flag is false.
  2. 在虚拟目录之间同步时,如果存在与某个虚拟目录同名的 Blob,则在路径中添加一个尾随斜杠(参考示例)。When syncing between virtual directories, add a trailing slash to the path (refer to examples) if there's a blob with the same name as one of the virtual directories.
  3. 如果将“deleteDestination”标志设置为 true 或 prompt,则 sync 将删除目标中存在的,但在源中不存在的文件和 Blob。If the 'deleteDestination' flag is set to true or prompt, then sync will delete files and blobs at the destination that are not present at the source.


如果未指定文件扩展名,从本地磁盘上传时,AzCopy 会根据文件扩展名或内容自动检测文件的内容类型。If you don't specify a file extension, AzCopy automatically detects the content type of the files when uploading from the local disk, based on the file extension or content (if no extension is specified).

内置的查找表较小,但在 Unix 上,已通过采用以下一个或多个名称的本地系统 mime.types 文件(如果可用)扩充了该查找表:The built-in lookup table is small, but on Unix, it's augmented by the local system's mime.types file(s) if available under one or more of these names:

  • /etc/mime.types/etc/mime.types
  • /etc/apache2/mime.types/etc/apache2/mime.types
  • /etc/apache/mime.types/etc/apache/mime.types

在 Windows 上,MIME 类型是从注册表提取的。On Windows, MIME types are extracted from the registry.

azcopy sync <source> <destination> [flags]


同步单个文件:Sync a single file:

azcopy sync "/path/to/file.txt" "https://[account][container]/[path/to/blob]"


必须存在目标 Blob。The destination blob must exist. 使用 azcopy copy 复制目标中没有的单个文件。Use azcopy copy to copy a single file that does not yet exist in the destination. 否则将发生以下错误:Cannot perform sync due to error: sync must happen between source and destination of the same type, e.g. either file <-> file, or directory/container <-> directory/containerOtherwise, the following error occurs: Cannot perform sync due to error: sync must happen between source and destination of the same type, e.g. either file <-> file, or directory/container <-> directory/container.

与前面的示例相同,但这一次此命令还会计算文件内容的 MD5 哈希,并将其另存为 Blob 的 Content-MD5 属性:Same as above, but this time, also compute MD5 hash of the file content and save it as the blob's Content-MD5 property:

azcopy sync "/path/to/file.txt" "https://[account][container]/[path/to/blob]" --put-md5

同步整个目录,包括其子目录(请注意,默认已启用递归):Sync an entire directory including its sub-directories (note that recursive is on by default):

azcopy sync "/path/to/dir" "https://[account][container]/[path/to/virtual/dir]"


azcopy sync "/path/to/dir" "https://[account][container]/[path/to/virtual/dir]" --put-md5

仅同步目录中的顶级文件,而不同步其子目录:Sync only the top files inside a directory but not its sub-directories:

azcopy sync "/path/to/dir" "https://[account][container]/[path/to/virtual/dir]" --recursive=false

同步目录中的一部分文件(例如:仅同步 jpg 和 pdf 文件,或者同步文件名为“exactName”的文件):Sync a subset of files in a directory (For example: only jpg and pdf files, or if the file name is "exactName"):

azcopy sync "/path/to/dir" "https://[account][container]/[path/to/virtual/dir]" --include="*.jpg;*.pdf;exactName"

同步整个目录,但从同步范围中排除某些文件(例如:以 foo 开头或以 bar 结尾的每个文件):Sync an entire directory, but exclude certain files from the scope (For example: every file that starts with foo or ends with bar):

azcopy sync "/path/to/dir" "https://[account][container]/[path/to/virtual/dir]" --exclude="foo*;*bar"

同步单个 Blob:Sync a single blob:

azcopy sync "https://[account][container]/[path/to/blob]?[SAS]" "https://[account][container]/[path/to/blob]"

同步虚拟目录:Sync a virtual directory:

azcopy sync "https://[account][container]/[path/to/virtual/dir]?[SAS]" "https://[account][container]/[path/to/virtual/dir]" --recursive=true

同步与 Blob 同名的虚拟目录(在路径中添加尾随斜杠以消除歧义):Sync a virtual directory that has the same name as a blob (add a trailing slash to the path in order to disambiguate):

azcopy sync "https://[account][container]/[path/to/virtual/dir]/?[SAS]" "https://[account][container]/[path/to/virtual/dir]/" --recursive=true

同步 Azure 文件目录(语法与 Blob 相同):Sync an Azure File directory (same syntax as Blob):

azcopy sync "https://[account][share]/[path/to/dir]?[SAS]" "https://[account][share]/[path/to/dir]" --recursive=true


如果同时使用 include/exclude 标志,只会查找与 include 模式匹配的文件,而始终忽略与 exclude 模式匹配的文件。If include/exclude flags are used together, only files matching the include patterns would be looked at, but those matching the exclude patterns would be always be ignored.


--block-size-mb 浮点数 在上传到 Azure 存储或从 Azure 存储下载时使用此块大小(以 MiB 为单位)。--block-size-mb float Use this block size (specified in MiB) when uploading to Azure Storage or downloading from Azure Storage. 默认值根据文件大小自动计算。Default is automatically calculated based on file size. 允许使用小数(例如:0.25)。Decimal fractions are allowed (For example: 0.25).

--check-md5 字符串 指定下载时验证 MD5 哈希的严格程度。--check-md5 string Specifies how strictly MD5 hashes should be validated when downloading. 此选项仅在下载时可用。This option is only available when downloading. 可用的值包括:NoCheck、LogOnly、FailIfDifferent、FailIfDifferentOrMissing。Available values include: NoCheck, LogOnly, FailIfDifferent, FailIfDifferentOrMissing. (默认值为“FailIfDifferent”)。(default 'FailIfDifferent'). (默认值为“FailIfDifferent”)(default "FailIfDifferent")

--delete-destination 字符串 定义是否从目标中删除不在源中的多余文件。--delete-destination string Defines whether to delete extra files from the destination that are not present at the source. 可设置为 true、false 或 prompt。Could be set to true, false, or prompt. 如果设置为 prompt,则在计划要删除的文件和 Blob 之前,系统会向用户提问。If set to prompt, the user will be asked a question before scheduling files and blobs for deletion. (默认值为“false”)。(default 'false'). (默认值为“false”)(default "false")

--exclude-attributes 字符串 (仅限 Windows)排除其属性与属性列表相匹配的文件。--exclude-attributes string (Windows only) Exclude files whose attributes match the attribute list. 例如:A;S;RFor example: A;S;R

--exclude-path 字符串复制时排除这些路径。--exclude-path string Exclude these paths when copying. 此选项不支持通配符 (*)。This option does not support wildcard characters (*). 检查相对路径前缀(例如:myFolder;myFolder/subDirName/file.pdf)。Checks relative path prefix(For example: myFolder;myFolder/subDirName/file.pdf). 与帐户遍历结合使用时,路径不包含容器名称。When used in combination with account traversal, paths do not include the container name.

--exclude-pattern 字符串 排除名称与模式列表相匹配的文件。--exclude-pattern string Exclude files where the name matches the pattern list. 例如:*.jpg;*.pdf;exactNameFor example: *.jpg;*.pdf;exactName

-h、--help sync 命令的帮助-h, --help help for sync

--include-attributes 字符串 (仅限 Windows)仅包括其属性与属性列表相匹配的文件。--include-attributes string (Windows only) Include only files whose attributes match the attribute list. 例如:A;S;RFor example: A;S;R

--include-pattern 字符串 仅包括名称与模式列表相匹配的文件。--include-pattern string Include only files where the name matches the pattern list. 例如:*.jpg;*.pdf;exactNameFor example: *.jpg;*.pdf;exactName

--log-level 字符串 定义日志文件的日志详细程度,可用级别:INFO(所有请求和响应)、WARNING(响应缓慢)、ERROR(仅限失败的请求)和 NONE(无输出日志)。--log-level string Define the log verbosity for the log file, available levels: INFO(all requests and responses), WARNING(slow responses), ERROR(only failed requests), and NONE(no output logs). (默认值为 INFO)。(default INFO). (默认值为“INFO”)(default "INFO")

--put-md5 创建每个文件的 MD5 哈希,并将该哈希另存为目标 Blob 或文件的 Content-MD5 属性。--put-md5 Create an MD5 hash of each file, and save the hash as the Content-MD5 property of the destination blob or file. (默认不会创建哈希。)仅在上传时可用。(By default the hash is NOT created.) Only available when uploading.

--recursive 默认值为 True,即,在目录之间同步时,将以递归方式查看子目录。--recursive True by default, look into sub-directories recursively when syncing between directories. (默认值为 true)。(default true). (默认值为 true)(default true)

从父命令继承的选项Options inherited from parent commands

选项Option 说明Description
--cap-mbps uint32--cap-mbps uint32 以兆位/秒为单位限制传输速率。Caps the transfer rate, in megabits per second. 瞬间吞吐量可能与上限略有不同。Moment-by-moment throughput might vary slightly from the cap. 如果此选项设置为零,或者省略,则吞吐量不受限制。If this option is set to zero, or it is omitted, the throughput isn't capped.
--output-type string--output-type string 命令输出的格式。Format of the command's output. 选项包括:text、json。The choices include: text, json. 默认值为“text”。The default value is "text".
--trusted-microsoft-suffixes 字符串--trusted-microsoft-suffixes string 指定可在其中发送 Azure Active Directory 登录令牌的其他域后缀。Specifies additional domain suffixes where Azure Active Directory login tokens may be sent. 默认值为“;;;” 。The default is ';;;'. 此处列出的任何内容都会添加到默认值。Any listed here are added to the default. 为安全起见,应只在此处放置 Azure 域。For security, you should only put Azure domains here. 用分号分隔多个条目。Separate multiple entries with semi-colons.

另请参阅See also