本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS DataSync 允许您应用筛选器在传输中包含或排除来自源位置的数据。例如,如果您不想传输以 .tmp
结尾的临时文件,可以创建一个排除筛选条件,这些文件就不会传输到目标位置。
您可以在同一个传输任务中组合使用排除和包含筛选条件。如果您修改了任务的筛选条件,这些更改将在下次运行该任务时生效。
筛选术语、定义和语法
熟悉与筛选相关的概念: DataSync
- 筛选条件
-
构成特定筛选条件的整个字符串(例如,
*.tmp
|
*.temp
或/folderA|/folderB
)。筛选条件由使用管道符(|)分隔的模式组成。在 DataSync 控制台中添加模式时不需要分隔符,因为每个模式都是单独添加的。
注意
筛选区分大小写。例如,筛选条件
/folderA
与/FolderA
不匹配。 - 模式
-
筛选条件中的模式。例如,
*.tmp
是一个模式,它是*.tmp
|
*.temp
筛选条件的组成部分。如果您的筛选条件有多个模式,则使用管道符(|)划分各个模式。 - 文件夹
-
-
所有筛选条件都相对于源位置路径。例如,假设您在创建源位置和任务时指定
/my_source/
作为源路径,并要求包含筛选条件/transfer_this/
。在这种情况下,仅 DataSync 传输目录/my_source/transfer_this/
及其内容。 -
要指定直接位于源位置下的文件夹,请在文件夹名称前面加入一个正斜杠 (/) 。在上述示例中,模式使用
/transfer_this
,而不是transfer_this
。 -
DataSync 以相同的方式解释以下模式,并匹配文件夹及其内容。
/dir
/dir/
-
当您从 Amazon S3 存储桶传输数据或将数据传输到 Amazon S3 存储桶时,会将对象密钥中的
/
字符 DataSync视为文件系统上的文件夹。
-
- 特殊字符
-
以下是用于筛选的特殊字符。
特殊字符 描述 *
(通配符)一个用于匹配零个或多个字符的字符。例如,
/movies_folder*
匹配/movies_folder
和/movies_folder1
这两者。|
(竖线分隔符)用作模式之间分隔符的字符。它支持指定多个模式,其中的任何模式都可以与筛选条件匹配。例如,
*.tmp
|
*.temp
匹配以tmp
或temp
结尾的文件。注意
在控制台上添加模式时不需要此分隔符,因为每个模式都在单独的行上添加。
\
(反斜杠)用于转义文件或对象名称中的特殊字符(*、|、\)的字符。
当反斜杠是文件名的组成部分时,需要使用双反斜杠 (\\)。同样,\\\\ 代表文件名中两个连续的反斜杠。
当竖线是文件名的组成部分时,需要使用反斜杠后跟竖线 (|) 字符。
后跟任何其他字符或位于模式末尾的反斜杠 (\) 将被忽略。
示例筛选条件:
以下示例显示了您可以使用的常用过滤器 DataSync。
注意
筛选条件的字符数是有限制的。有关更多信息,请参阅 DataSync 配额。
排除源位置中的某些文件夹
在某些情况下,您可能需要排除源位置中的文件夹,以防止将它们复制到目标位置。例如,如果您有临时 work-in-progress文件夹,则可以使用类似以下筛选器的内容:
*/.temp
要排除内容相似的文件夹(例如 /reports2021
和 /reports2022)
),您可以使用与下述类似的排除筛选条件:
/reports*
要排除文件层次结构中任何级别的文件夹,您可以使用排除筛选条件,如下所示。
*/folder-to-exclude-1
|*/folder-to-exclude-2
要排除源位置的顶级文件夹,您可以使用排除筛选条件,如下所示。
/top-level-folder-to-exclude-1
|/top-level-folder-to-exclude-2
包含源位置中的文件夹子集
在某些情况下,您的源位置可能是大型共享的,并且您需要传输根文件夹下的文件夹子集。要包含特定文件夹,使用如下所示的包含筛选条件开始任务执行。
/folder-to-transfer/*
排除特定文件类型
要从传输中排除某些文件类型,您可以使用诸如 *.temp
的排除筛选条件创建一个任务执行。
传输您指定的个别文件
要传输个别文件的列表,使用如下所示的包含筛选条件开始任务执行:“/folder/subfolder/file1.txt
|/folder/subfolder/file2.txt
|/folder/subfolder/file2.txt
”
创建包含筛选条件
包含筛选器定义要 DataSync 传输的文件、对象和文件夹。您可以在创建、编辑或启动任务时配置以包括这些筛选条件。
DataSync 仅扫描和传输与包含过滤器匹配的文件和文件夹。例如,要包括源文件夹的子集,您可以指定 /important_folder_1
|/important_folder_2
。
注意
包括筛选条件仅支持将通配符 (*) 字符用作模式中最右侧的字符。例如,支持 /documents*
|/code*
,但不支持 *.txt
。
打开 AWS DataSync 控制台,网址为https://console.aws.amazon.com/datasync/
。 -
在左侧导航窗格中,选择任务,然后选择创建任务。
-
配置您任务的源位置和目标位置。
有关更多信息,请参阅 我可以在哪里通过 AWS DataSync传输数据?
-
对于要扫描的内容,请选择特定文件、对象和文件夹,然后选择使用筛选条件。
-
对于包含,输入您的筛选条件(例如,输入
/important_folders
以包含重要目录),然后选择添加模式。 -
根据需要,添加其他包含筛选条件。
使用时 AWS CLI,必须在筛选器周围使用单引号 ('
),如果有多个筛选器,则必须使用|(竖线)作为分隔符。
以下示例指定了运行 create-task
命令时使用的两个包含筛选条件 /important_folder1
和 /important_folder2
。
aws datasync create-task --source-location-arn 'arn:aws:datasync:
region
:account-id
:location/location-id
' \ --destination-location-arn 'arn:aws:datasync:region
:account-id
:location/location-id
' \ --includes FilterType=SIMPLE_PATTERN,Value='/important_folder1|/important_folder2'
创建排除筛选条件
排除过滤器定义源位置中您不想 DataSync 传输的文件、对象和文件夹。您可以在创建、编辑或启动任务时配置这些筛选条件。
主题
默认排除的数据
DataSync 自动将某些数据排除在传输范围之外:
-
.snapshot
— DataSync 忽略任何以结尾的路径.snapshot
,该路径通常用于存储系统的文件或目录的 point-in-time快照。 -
/.aws-datasync
和/.awssync
— 在您所在的位置 DataSync创建这些文件夹,以方便您进行传输。 -
/.zfs
— 你可能会在 Amazon FSx 上看到这个文件夹,里面有 OpenZFS 位置。
打开 AWS DataSync 控制台,网址为https://console.aws.amazon.com/datasync/
。 -
在左侧导航窗格中,选择任务,然后选择创建任务。
-
配置您任务的源位置和目标位置。
有关更多信息,请参阅 我可以在哪里通过 AWS DataSync传输数据?
-
对于排除,输入您的筛选条件(例如,输入
*/temp
以排除临时文件夹),然后选择添加模式。 -
根据需要,添加其他排除筛选条件。
-
如果需要,添加包含筛选条件。
使用时 AWS CLI,必须在筛选器周围使用单引号 ('
),如果有多个筛选器,则必须使用|(竖线)作为分隔符。
以下示例指定了运行 create-task
命令时使用的两个排除筛选条件 */temp
和 */tmp
。
aws datasync create-task \ --source-location-arn 'arn:aws:datasync:
region
:account-id
:location/location-id
' \ --destination-location-arn 'arn:aws:datasync:region
:account-id
:location/location-id
' \ --excludes FilterType=SIMPLE_PATTERN,Value='*/temp|*/tmp'