

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 选择什么 AWS DataSync 转账
<a name="task-options"></a>

AWS DataSync 允许您选择要传输的内容以及如何处理数据。一些选项包括：
+ 使用清单传输确切的文件或对象列表。
+ 使用筛选条件在传输中包含或排除某些类型的数据。
+ 对于周期性传输，仅移动自上次传输以来发生变化的数据
+ 覆盖目标位置的数据，使其与源位置中的数据匹配。
+ 选择要在存储位置之间保留的文件或对象元数据。

**Topics**
+ [使用清单传输特定的文件或对象](transferring-with-manifest.md)
+ [使用筛选条件传输特定文件、对象和文件夹](filtering.md)
+ [了解如何 DataSync 处理文件和对象元数据](metadata-copied.md)
+ [由复制的链接和目录 AWS DataSync](special-files-copied.md)
+ [配置文件、对象和元数据的处理方式](configure-metadata.md)

# 使用清单传输特定的文件或对象
<a name="transferring-with-manifest"></a>

*清单*是您要传输的文件或对象 AWS DataSync 的列表。例如，不必传输可能包含数百万个对象的 S3 存储桶中的所有内容，而是只 DataSync 传输您在清单中列出的对象。

清单与[筛选条件](filtering.md)类似，但清单可让您准确确定要传输的文件或对象，而不是符合筛选模式的数据。

**注意**  
增强模式任务清单文件允许的最大大小为 20 GB。

## 创建清单
<a name="transferring-with-manifest-create"></a>

清单是逗号分隔值 (CSV) 格式的文件，它列出了源位置中要 DataSync 传输的文件或对象。如果源位置是 S3 存储桶，您还可以包含要传输的对象版本。

**Topics**
+ [指南要求](#transferring-with-manifest-guidelines)
+ [示例清单](#manifest-examples)

### 指南要求
<a name="transferring-with-manifest-guidelines"></a>

使用这些指南来帮助您创建适用于的清单 DataSync。

------
#### [ Do ]
+ 指定要传输的每个文件或对象的完整路径。

  您不能只指定一个目录或文件夹，然后希望传输其中的所有内容。对于这种情况，请考虑使用[包含筛选条件](filtering.md)，而不是清单。
+ 确保每个文件或对象路径都与您在配置 DataSync 源位置时指定的挂载路径、文件夹、目录或前缀相关。

  例如，假设您[配置了一个 S3 位置](create-s3-location.md#create-s3-location-how-to)，其前缀名为 `photos`。该前缀包括一个要传输的对象 `my-picture.png`。然后，在清单中，您只需要指定对象（`my-picture.png`），而不是前缀和对象（`photos/my-picture.png`）。
+ 要指定 Amazon S3 对象版本 IDs，请使用逗号分隔对象的路径和版本 ID。

  下面的示例展示了包含两个字段的清单条目。第一个字段包含一个名为 `picture1.png` 的对象。第二个字段用逗号分隔，包含版本 ID `111111`：

  ```
  picture1.png,111111
  ```
+ 在以下情况下使用引号：
  + 当路径包含特殊字符（逗号、引号和行尾）时：

    `"filename,with,commas.txt"`
  + 当路径跨越多行时：

    ```
    "this
    is
    a
    filename.txt"
    ```
  + 当路径包含引号时：

    `filename""with""quotes.txt`

    这表示名为 `filename"with"quotes.txt` 的路径。

  这些引号规则也适用于版本 ID 字段。通常，如果清单字段有引号，必须使用另一个引号将其转义。
+ 用新行分隔每个文件或对象条目。

  您可以使用 Linux 风格的换行（换行符或回车符）或 Windows 风格的换行（回车符后跟换行符）来分隔行。
+ 保存您的清单（例如，`my-manifest.csv` 或 `my-manifest.txt`）。
+ 将清单上传到[DataSync 可以访问](#transferring-with-manifest-access)的 S3 存储桶。

  此存储桶不必位于您正在使用的同一个 AWS 区域 或账户中 DataSync。

------
#### [ Don't ]
+ 只指定一个目录或文件夹，然后希望传输其中的所有内容。

  清单只能包含要传输的文件或对象的完整路径。如果您将源位置配置为使用特定的挂载路径、文件夹、目录或前缀，您不必在清单中包含这些内容。
+ 指定超过 4096 个字符的文件或对象路径。
+ 指定超过 1024 字节的文件路径、对象路径或 Amazon S3 对象版本 ID。
+ 指定重复的文件或对象路径。
+ 包含对象版本 ID（如果您的源位置不是 S3 存储桶）。
+ 在一个清单条目中包含两个以上的字段。

  一个条目只能包含一个文件或对象路径，以及一个 Amazon S3 对象版本 ID（如适用）。
+ 包含不符合 UTF-8 编码的字符。
+ 在条目字段中，在引号外包含非预期的空格。

------

### 示例清单
<a name="manifest-examples"></a>

使用这些示例来帮助您创建适用于的清单 DataSync。

**包含完整文件或对象路径的清单**  
下面的示例展示了带有完整文件或对象传输路径的清单。  

```
photos/picture1.png
photos/picture2.png
photos/picture3.png
```

**仅包含对象键的清单**  
下面的示例展示了一份清单，其中列出了要从 Amazon S3 源位置传输的对象。由于[位置已配置](create-s3-location.md#create-s3-location-how-to)了前缀 `photos`，因此仅指定了对象键。  

```
picture1.png
picture2.png
picture3.png
```

**包含对象路径和版本的清单 IDs**  
以下清单示例中的前两个条目包括要传输的特定 Amazon S3 对象版本。  

```
photos/picture1.png,111111
photos/picture2.png,121212
photos/picture3.png
```

**包含 UTF-8 字符的清单**  
以下示例展示了包含 UTF-8 字符的文件清单。  

```
documents/résumé1.pdf
documents/résumé2.pdf
documents/résumé3.pdf
```

## 提供对清单的 DataSync 访问权限
<a name="transferring-with-manifest-access"></a>

您需要一个 AWS Identity and Access Management (IAM) 角色来授予对其 S3 存储桶中清单的 DataSync 访问权限。此角色必须包括以下权限：
+ `s3:GetObject`
+ `s3:GetObjectVersion`

您可以在 DataSync 控制台中自动生成此角色，也可以自己创建该角色。

**注意**  
如果您的清单位于不同的清单中 AWS 账户，则必须手动创建此角色。

### 自动创建 IAM 角色
<a name="creating-manfiest-role-automatically"></a>

在控制台中创建或启动转移任务时， DataSync 可以为您创建一个 IAM 角色，该角色具有访问清单所需的`s3:GetObject`和`s3:GetObjectVersion`权限。

**自动创建角色所需的权限**  
要自动创建角色，请确保您用于访问 DataSync 控制台的角色具有以下权限：  
+ `iam:CreateRole`
+ `iam:CreatePolicy`
+ `iam:AttachRolePolicy`

### 创建 IAM 角色（同一账户）
<a name="creating-manfiest-role-automatically-same-account"></a>

您可以手动创建访问清单 DataSync 所需的 IAM 角色。以下说明假设您 AWS 账户 所在的使用位置相同， DataSync 并且清单的 S3 存储桶位于同一位置。

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在左侧导航窗格的**访问管理**下，选择**角色**，然后选择**创建角色**。

1. 在**选择可信实体**页面中，为**可信实体类型**选择 **AWS 服务**。

1. 对于 “**用例**”，**DataSync**在下拉列表中进行选择，然后选择**DataSync**。选择**下一步**。

1. 在**添加权限**页面上，选择**下一步**。输入角色名称，然后选择**创建角色**。

1. 在**角色**页面上，搜索您刚刚创建的角色并选择其名称。

1. 在角色的详情页面上，选择**权限**选项卡。选择**添加权限**，然后选择**创建内联策略**。

1. 选择 **JSON** 选项卡，然后将以下示例策略粘贴到策略编辑器中：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "DataSyncAccessManifest",
           "Effect": "Allow",
           "Action": [
               "s3:GetObject",
               "s3:GetObjectVersion"
           ],
           "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/my-manifest.csv"
       }]
   }
   ```

------

1. 在刚才粘贴的示例策略中，将以下值替换为您自己的值：

   1. 将 `amzn-s3-demo-bucket` 替换为托管清单的 S3 存储桶名称。

   1. 将 `my-manifest.csv` 替换为清单的文件名称。

1. 选择**下一步**。为您的策略输入名称，然后选择**创建策略**。

1. （推荐）为防止出现[跨服务混淆代理问题](cross-service-confused-deputy-prevention.md)，请执行以下操作：

   1. 在角色的详情页面上，选择**信任关系**选项卡。选择**编辑信任策略**。

   1. 使用以下示例更新信任策略，其中包括 `aws:SourceArn` 和 `aws:SourceAccount` 全局条件上下文键：

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
            {
              "Effect": "Allow",
              "Principal": {
                  "Service": "datasync.amazonaws.com"
              },
              "Action": "sts:AssumeRole",
              "Condition": {
                  "StringEquals": {
                  "aws:SourceAccount": "555555555555"
                  },
                  "ArnLike": {
                  "aws:SourceArn": "arn:aws:datasync:us-east-1:555555555555:*"
                  }
              }
            }
        ]
      }
      ```

------
      + 将每个实例`account-id`替换为您正在使用的 AWS 账户 ID DataSync。
      + `region`替换为你正在使用 AWS 区域 的地方 DataSync。

   1. 选择**更新策略**。

您已经创建了一个允许 DataSync 访问清单的 IAM 角色。在[创建](#manifest-creating-task)或[启动](#manifest-starting-task)任务时指定此角色。

### 创建 IAM 角色（不同账户）
<a name="creating-manfiest-role-automatically-different-account"></a>

如果您的清单位于属于不同的 S3 存储桶中 AWS 账户，则必须手动创建 DataSync 用于访问清单的 IAM 角色。然后，在清单 AWS 账户 所在的位置中，您需要在 S3 存储桶策略中包含该角色。

#### 创建角色
<a name="creating-manfiest-role-automatically-different-account-1"></a>

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在左侧导航窗格的**访问管理**下，选择**角色**，然后选择**创建角色**。

1. 在**选择可信实体**页面中，为**可信实体类型**选择 **AWS 服务**。

1. 对于 “**用例**”，**DataSync**在下拉列表中进行选择，然后选择**DataSync**。选择**下一步**。

1. 在**添加权限**页面上，选择**下一步**。输入角色名称，然后选择**创建角色**。

1. 在**角色**页面上，搜索您刚刚创建的角色并选择其名称。

1. 在角色的详情页面上，选择**权限**选项卡。选择**添加权限**，然后选择**创建内联策略**。

1. 选择 **JSON** 选项卡，然后将以下示例策略粘贴到策略编辑器中：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "DataSyncAccessManifest",
           "Effect": "Allow",
           "Action": [
               "s3:GetObject",
               "s3:GetObjectVersion"
           ],
           "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/my-manifest.csv"
       }]
   }
   ```

------

1. 在刚才粘贴的示例策略中，将以下值替换为您自己的值：

   1. 将 `amzn-s3-demo-bucket` 替换为托管清单的 S3 存储桶名称。

   1. 将 `my-manifest.csv` 替换为清单的文件名称。

1. 选择**下一步**。为您的策略输入名称，然后选择**创建策略**。

1. （推荐）为防止出现[跨服务混淆代理问题](cross-service-confused-deputy-prevention.md)，请执行以下操作：

   1. 在角色的详情页面上，选择**信任关系**选项卡。选择**编辑信任策略**。

   1. 使用以下示例更新信任策略，其中包括 `aws:SourceArn` 和 `aws:SourceAccount` 全局条件上下文键：

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
            {
              "Effect": "Allow",
              "Principal": {
                  "Service": "datasync.amazonaws.com"
              },
              "Action": "sts:AssumeRole",
              "Condition": {
                  "StringEquals": {
                  "aws:SourceAccount": "000000000000"
                  },
                  "ArnLike": {
                  "aws:SourceArn": "arn:aws:datasync:us-east-1:000000000000:*"
                  }
              }
           }
        ]
      }
      ```

------
      + 将的`account-id`每个实例替换为您正在使用的 AWS 账户 ID DataSync。
      + `region`替换为你正在使用 AWS 区域 的地方 DataSync。

   1. 选择**更新策略**。

您创建了可以包含在 S3 存储桶策略中的 IAM 角色。

#### 更新 S3 存储桶策略以包含角色
<a name="creating-manfiest-role-automatically-different-account-2"></a>

创建 IAM 角色后，必须将其添加到清单 AWS 账户 所在的另一个存储桶策略中的 S3 存储桶策略中。

1. 在中 AWS 管理控制台，切换到包含你的 manfiest 的 S3 存储桶的账户。

1. 打开 Amazon S3 控制台，网址为 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在存储桶的详情页面上，选择**权限**选项卡。

1. 在 **存储桶策略**下，选择 **编辑**并执行以下操作来修改您的 S3 存储桶策略：

   1. 更新编辑器中的内容，以包含以下策略声明：

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Sid": "DataSyncAccessManifestBucket",
            "Effect": "Allow",
            "Action": [
              "s3:GetObject",
              "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
          }
        ]
      }
      ```

------

   1. `account-id`替换为您正在使用的账户 DataSync 的 AWS 账户 ID。

   1. `datasync-role`替换为您刚刚创建的 DataSync 允许访问清单的 IAM 角色。

   1. 将 `amzn-s3-demo-bucket` 替换为在其他 AWS 账户中托管清单的 S3 存储桶名称。

1. 选择**保存更改**。

您已经创建了一个 IAM 角色， DataSync 允许您在其他账户中访问您的清单。在[创建](#manifest-creating-task)或[启动](#manifest-starting-task)任务时指定此角色。

## 在创建任务时指定清单
<a name="manifest-creating-task"></a>

您可以指定 DataSync 要在创建任务时使用的清单。

### 使用控制 DataSync 台
<a name="manifest-creating-task-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 对于**要扫描的内容**，请选择**特定文件、对象和文件夹**，然后选择**使用清单**。

1. 对于 **S3 URI**，请选择托管在 S3 存储桶上的清单。

   或者，您也可以输入 URI（例如，`s3://bucket/prefix/my-manifest.csv`）。

1. 对于**对象版本**，请选择 DataSync 要使用的清单版本。

   默认情况下， DataSync 使用对象的最新版本。

1. 对于**清单访问角色**，执行下列操作之一：
   + 选择 “**自动生成**” DataSync 以自动创建一个 IAM 角色，该角色具有访问其 S3 存储桶中的清单所需的权限。
   + 选择可以访问清单的现有 IAM 角色。

   有关更多信息，请参阅 [提供对清单的 DataSync 访问权限](#transferring-with-manifest-access)。

1. 配置所需的任何其他任务设置，然后选择**下一步**。

1. 选择**创建任务**。

### 使用 AWS CLI
<a name="manifest-creating-task-cli"></a>

1. 复制以下 `create-task` 命令：

   ```
   aws datasync create-task \
     --source-location-arn arn:aws:datasync:us-east-1:123456789012:location/loc-12345678abcdefgh \
     --destination-location-arn arn:aws:datasync:us-east-1:123456789012:location/loc-abcdefgh12345678 \
     --manifest-config {
         "Source": {
           "S3": {
               "ManifestObjectPath": "s3-object-key-of-manifest",
               "BucketAccessRoleArn": "bucket-iam-role",
               "S3BucketArn": "amzn-s3-demo-bucket-arn",
               "ManifestObjectVersionId": "manifest-version-to-use" 
           }
         }
     }
   ```

1. 对于 `--source-location-arn` 参数，指定数据传输源位置的 Amazon 资源名称（ARN）。

1. 对于 `--destination-location-arn` 参数，指定数据传输目标位置的 ARN。

1. 对于 `--manifest-config` 参数，请执行以下操作：
   + `ManifestObjectPath`：指定清单的 S3 对象键。
   + `BucketAccessRoleArn`— 指定允许 DataSync 访问其 S3 存储桶中的清单的 IAM 角色。

     有关更多信息，请参阅 [提供对清单的 DataSync 访问权限](#transferring-with-manifest-access)。
   + `S3BucketArn`：指定托管清单的 S3 存储桶的 ARN。
   + `ManifestObjectVersionId`— 指定 DataSync 要使用的清单版本。

     默认情况下， DataSync 使用对象的最新版本。

1. 运行 `create-task` 命令来创建您的任务。

准备就绪后，您可以[启动传输任务](run-task.md)。

## 在启动任务时指定清单
<a name="manifest-starting-task"></a>

您可以指定 DataSync 要在执行任务时使用的清单。

### 使用控制 DataSync 台
<a name="manifest-starting-task-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，选择**任务**，然后选择要启动的任务。

1. 在任务概览页面，选择**开始**，然后选择**使用覆盖选项开始**。

1. 对于**要扫描的内容**，请选择**特定文件、对象和文件夹**，然后选择**使用清单**。

1. 对于 **S3 URI**，请选择托管在 S3 存储桶上的清单。

   或者，您也可以输入 URI（例如，`s3://bucket/prefix/my-manifest.csv`）。

1. 对于**对象版本**，请选择 DataSync 要使用的清单版本。

   默认情况下， DataSync 使用对象的最新版本。

1. 对于**清单访问角色**，执行下列操作之一：
   + 选择 “**自动生成**” DataSync 以自动创建 IAM 角色来访问其 S3 存储桶中的清单。
   + 选择可以访问清单的现有 IAM 角色。

   有关更多信息，请参阅 [提供对清单的 DataSync 访问权限](#transferring-with-manifest-access)。

1. 选择**开始**，以开始传输。

### 使用 AWS CLI
<a name="manifest-starting-task-cli"></a>

1. 复制以下 `start-task-execution` 命令：

   ```
   aws datasync start-task-execution \
     --task-arn arn:aws:datasync:us-east-1:123456789012:task/task-12345678abcdefgh \
     --manifest-config {
         "Source": {
           "S3": {
               "ManifestObjectPath": "s3-object-key-of-manifest",
               "BucketAccessRoleArn": "bucket-iam-role",
               "S3BucketArn": "amzn-s3-demo-bucket-arn",
               "ManifestObjectVersionId": "manifest-version-to-use" 
           }
         }
     }
   ```

1. 对于 `--task-arn` 参数，请指定要启动的任务的 Amazon 资源名称（ARN）。

1. 对于 `--manifest-config` 参数，请执行以下操作：
   + `ManifestObjectPath`：指定清单的 S3 对象键。
   + `BucketAccessRoleArn`— 指定允许 DataSync 访问其 S3 存储桶中的清单的 IAM 角色。

     有关更多信息，请参阅 [提供对清单的 DataSync 访问权限](#transferring-with-manifest-access)。
   + `S3BucketArn`：指定托管清单的 S3 存储桶的 ARN。
   + `ManifestObjectVersionId`— 指定 DataSync 要使用的清单版本。

     默认情况下， DataSync 使用对象的最新版本。

1. 运行 `start-task-execution` 命令开始传输。

## 限制
<a name="transferring-with-manifest-limitations"></a>
+ 您不能将清单与[筛选条件](filtering.md)一起使用。
+ 您不能只指定一个目录或文件夹，然后希望传输其中的所有内容。对于这种情况，请考虑使用[包含筛选条件](filtering.md)，而不是清单。
+ 您不能使用 “**保留已删除文件**” 任务选项（`PreserveDeletedFiles`在 [API](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-PreserveDeletedFiles) 中）来[维护目标中不在源中的文件或对象](configure-metadata.md)。 DataSync 仅传输清单中列出的内容，不会删除目的地中的任何内容。

## 问题排查
<a name="manifests-troubleshooting"></a>

**与 `HeadObject` 或 `GetObjectTagging` 相关的错误**  
如果您要 IDs 从 S3 存储桶传输具有特定版本的对象，则可能会看到与`HeadObject`或相关的错误`GetObjectTagging`。例如，以下是与 `GetObjectTagging` 相关的错误：

```
[WARN] Failed to read metadata for file /picture1.png (versionId: 111111): S3 Get Object Tagging Failed
[ERROR] S3 Exception: op=GetObjectTagging photos/picture1.png, code=403, type=15, exception=AccessDenied, 
msg=Access Denied req-hdrs: content-type=application/xml, x-amz-api-version=2006-03-01 rsp-hdrs: content-type=application/xml, 
date=Wed, 07 Feb 2024 20:16:14 GMT, server=AmazonS3, transfer-encoding=chunked, 
x-amz-id-2=IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km, x-amz-request-id=79104EXAMPLEB723
```

如果您看到其中任何一个错误，请验证用于访问您的 DataSync S3 源位置的 IAM 角色是否具有以下权限：
+ `s3:GetObjectVersion`
+ `s3:GetObjectVersionTagging`

如果您需要更新角色，使其具有这些权限，请参阅 [为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置](create-s3-location.md#create-role-manually)。

**错误：`ManifestFileDoesNotExist`**  
此错误表示在源中找不到清单中的文件。查看创建清单的[指南](#transferring-with-manifest-guidelines)。

## 后续步骤
<a name="manifests-next-steps"></a>

如果尚未开始，请[启动任务](run-task.md)。否则，[请监视任务的活动](monitoring-overview.md)。

# 使用筛选条件传输特定文件、对象和文件夹
<a name="filtering"></a>

AWS DataSync 允许您应用筛选器在传输中包含或排除来自源位置的数据。例如，如果您不想传输以 `.tmp` 结尾的临时文件，可以创建一个排除筛选条件，这些文件就不会传输到目标位置。

您可以在同一个传输任务中组合使用排除和包含筛选条件。如果您修改了任务的筛选条件，这些更改将在下次运行该任务时生效。

## 筛选术语、定义和语法
<a name="filter-overview"></a>

熟悉与筛选相关的概念： DataSync 

**筛选条件 **  
构成特定筛选条件的整个字符串（例如，`*.tmp``|``*.temp` 或 `/folderA|/folderB`）。  
筛选条件由使用管道符（\$1）分隔的模式组成。在 DataSync 控制台中添加模式时不需要分隔符，因为每个模式都是单独添加的。  
筛选区分大小写。例如，筛选条件 `/folderA` 与 `/FolderA` 不匹配。

**模式**  
筛选条件中的模式。例如，`*.tmp` 是一个模式，它是 `*.tmp``|``*.temp` 筛选条件的组成部分。如果您的筛选条件有多个模式，则使用管道符（\$1）划分各个模式。

**文件夹**  
+ 所有筛选条件都相对于源位置路径。例如，假设您在创建源位置和任务时指定 `/my_source/` 作为源路径，并要求包含筛选条件 `/transfer_this/`。在这种情况下，仅 DataSync 传输目录`/my_source/transfer_this/`及其内容。
+ 要指定直接位于源位置下的文件夹，请在文件夹名称前面加入一个正斜杠 (/) 。在上述示例中，模式使用 `/transfer_this`，而不是 `transfer_this`。
+ DataSync 以相同的方式解释以下模式，并匹配文件夹及其内容。

  `/dir` 

  `/dir/`
+ 当您从 Amazon S3 存储桶传输数据或将数据传输到 Amazon S3 存储桶时，会将对象密钥中的`/`字符 DataSync视为文件系统上的文件夹。

**特殊字符**  
以下是用于筛选的特殊字符。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/filtering.html)

## 示例筛选条件：
<a name="sample-filters"></a>

以下示例显示了您可以使用的常用过滤器 DataSync。

**注意**  
筛选条件的字符数是有限制的。有关更多信息，请参阅 [DataSync 配额](datasync-limits.md#task-hard-limits)。

**排除源位置中的某些文件夹**  
在某些情况下，您可能需要排除源位置中的文件夹，以防止将它们复制到目标位置。例如，如果您有临时 work-in-progress文件夹，则可以使用类似以下筛选器的内容：

`*/.temp`

要排除内容相似的文件夹（例如 `/reports2021` 和 `/reports2022)`），您可以使用与下述类似的排除筛选条件：

`/reports*`

要排除文件层次结构中任何级别的文件夹，您可以使用排除筛选条件，如下所示。

`*/folder-to-exclude-1`\$1`*/folder-to-exclude-2`

要排除源位置的顶级文件夹，您可以使用排除筛选条件，如下所示。

`/top-level-folder-to-exclude-1`\$1`/top-level-folder-to-exclude-2`

**包含源位置中的文件夹子集**  
在某些情况下，您的源位置可能是大型共享的，并且您需要传输根文件夹下的文件夹子集。要包含特定文件夹，使用如下所示的包含筛选条件开始任务执行。

`/folder-to-transfer/*`

**排除特定文件类型**  
要从传输中排除某些文件类型，您可以使用诸如 `*.temp` 的排除筛选条件创建一个任务执行。

**传输您指定的个别文件**  
要传输个别文件的列表，使用如下所示的包含筛选条件开始任务执行：“`/folder/subfolder/file1.txt`\$1`/folder/subfolder/file2.txt`\$1`/folder/subfolder/file2.txt`”

## 创建包含筛选条件
<a name="include-filters"></a>

包含筛选器定义要 DataSync 传输的文件、对象和文件夹。您可以在创建、编辑或启动任务时配置以包括这些筛选条件。

DataSync 仅扫描和传输与包含过滤器匹配的文件和文件夹。例如，要包括源文件夹的子集，您可以指定 `/important_folder_1`\$1`/important_folder_2`。

**注意**  
包括筛选条件仅支持将通配符 (\$1) 字符用作模式中最右侧的字符。例如，支持 `/documents*`\$1`/code*`，但不支持 `*.txt`。

### 使用控制 DataSync 台
<a name="include-filters-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 对于**要扫描的内容**，请选择**特定文件、对象和文件夹**，然后选择**使用筛选条件**。

1. 对于**包含**，输入您的筛选条件（例如，输入 `/important_folders` 以包含重要目录），然后选择**添加模式**。

1. 根据需要，添加其他包含筛选条件。

### 使用 AWS CLI
<a name="include-filters-cli"></a>

使用时 AWS CLI，必须在筛选器周围使用单引号 (`'`)，如果有多个筛选器，则必须使用\$1（竖线）作为分隔符。

以下示例指定了运行 `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'
```

## 创建排除筛选条件
<a name="exclude-filters"></a>

排除过滤器定义源位置中您不想 DataSync 传输的文件、对象和文件夹。您可以在创建、编辑或启动任务时配置这些筛选条件。

**Topics**
+ [默认排除的数据](#directories-ignored-during-transfers)

### 默认排除的数据
<a name="directories-ignored-during-transfers"></a>

DataSync 自动将某些数据排除在传输范围之外：
+ `.snapshot`— DataSync 忽略任何以结尾的路径`.snapshot`，该路径通常用于存储系统的文件或目录的 point-in-time快照。
+ `/.aws-datasync`和 `/.awssync` — 在您所在的位置 DataSync创建这些文件夹，以方便您进行传输。
+ `/.zfs`— 你可能会在 Amazon FSx 上看到这个文件夹，里面有 OpenZFS 位置。

### 使用控制 DataSync 台
<a name="adding-exclude-filters"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 对于**排除**，输入您的筛选条件（例如，输入 `*/temp` 以排除临时文件夹），然后选择**添加模式**。

1. 根据需要，添加其他排除筛选条件。

1. 如果需要，添加[包含筛选条件](#include-filters)。

### 使用 AWS CLI
<a name="adding-exclude-filters-cli"></a>

使用时 AWS CLI，必须在筛选器周围使用单引号 (`'`)，如果有多个筛选器，则必须使用\$1（竖线）作为分隔符。

以下示例指定了运行 `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'
```

# 了解如何 DataSync 处理文件和对象元数据
<a name="metadata-copied"></a>

AWS DataSync 可以在数据传输期间保留您的文件或对象元数据。如何复制元数据取决于您的传输位置以及这些位置是否使用类似类型的元数据。

## 系统级元数据
<a name="metadata-copied-system-level"></a>

通常， DataSync 不会复制系统级元数据。例如，从 SMB 文件服务器传输时，您在文件系统级别配置的权限不会复制到目标存储系统。

有一些例外。在 Amazon S3 和其他对象存储之间传输时， DataSync 会复制一些[系统定义的对象元数据](#metadata-copied-between-object-s3)。

## 在 Amazon S3 传输中复制的元数据
<a name="metadata-copied-amazon-s3"></a>

下表描述了当传输涉及 Amazon S3 位置时 DataSync 可以复制哪些元数据。

**Topics**
+ [到 Amazon S3](#metadata-copied-to-s3)
+ [在 Amazon S3 和其他对象存储之间](#metadata-copied-between-object-s3)
+ [在 Amazon S3 和 HDFS 之间](#metadata-copied-between-hdfs-s3)

### 到 Amazon S3
<a name="metadata-copied-to-s3"></a>


| 从其中一个位置复制时 | 到此位置 | DataSync 可以复制 | 
| --- | --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  以下是 Amazon S3 用户元数据： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html) 存储在 Amazon S3 用户元数据中的文件元数据可使用 AWS Storage Gateway与文件网关上 NFS 共享互操作。文件网关支持从本地网络对复制到 Amazon S3 的数据进行低延迟访问。 DataSync此元数据也可以与 Lustre 互操作 FSx 。 将包含此元数据的对象 DataSync 复制回 NFS 服务器时，文件元数据将被恢复。还原元数据要求向 NFS 服务器授予提升的权限。有关更多信息，请参阅 [使用 NFS 文件服务器配置 AWS DataSync 传输](create-nfs-location.md)。  | 

### 在 Amazon S3 和其他对象存储之间
<a name="metadata-copied-between-object-s3"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)

### 在 Amazon S3 和 HDFS 之间
<a name="metadata-copied-between-hdfs-s3"></a>


| 在这些位置之间复制时 | DataSync 可以复制 | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  | 以下是 Amazon S3 用户元数据：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)HDFS 使用字符串来存储文件和文件夹的用户和群组所有权，而不是数字标识符，例如 UIDs 和 GIDs。 | 

## 在 NFS 传输中复制的元数据
<a name="metadata-copied-nfs"></a>

下表描述了 DataSync 可以在使用网络文件系统 (NFS) 的位置之间复制哪些元数据。


| 在这些位置之间复制时 | DataSync 可以复制 | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  | 

## 在 SMB 传输中复制的元数据
<a name="metadata-copied-smb"></a>

下表描述了 DataSync 可以在使用服务器消息块 (SMB) 的位置之间复制哪些元数据。


| 在这些位置之间复制时 | DataSync 可以复制 | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  | 

## 在其他传输场景中复制的元数据
<a name="metadata-copied-different"></a>

DataSync 在这些存储系统（其中大多数具有不同的元数据结构）之间进行复制时，使用以下方式处理元数据。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)

## 了解何时以及如何 DataSync 应用默认 POSIX 元数据
<a name="POSIX-metadata"></a>

DataSync 在以下情况下应用默认 POSIX 元数据：
+ 当传输的源位置和目标位置不具有类似的元数据结构时
+ 当源位置缺少元数据时

下表描述了在这些类型的传输期间如何 DataSync 应用默认 POSIX 元数据：


| 来源 | 目标位置 | 文件权限 | 文件夹权限 | UID | GID | 
| --- | --- | --- | --- | --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  0755  | 0755 |  65534  |  65534  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  0644  |  0755  |  65534  |  65534  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  0644  |  0755  |  65534  |  65534  | 

1 如果对象没有先前应用的元数据 DataSync。

# 由复制的链接和目录 AWS DataSync
<a name="special-files-copied"></a>

AWS DataSync 根据传输中涉及的存储位置，硬链接、符号链接和目录的处理方式会有所不同。

## 硬链接
<a name="special-files-copied-hard-links"></a>

以下是在一些常见的传输场景中 DataSync 处理硬链接的方法：
+ 在 **NFS 文件服务器、Lustre、 FSx OpenZFS、 FSx FSx ONTAP（使用 NFS）和 Amazon EFS 之间传输时，**会保留硬链接。
+ **传输到 Amazon S3 时**，硬链接引用的每个底层文件仅传输一次。在增量传输期间，将在您的 S3 存储桶中创建单独的对象。如果 Amazon S3 中的硬链接未更改，则在传输到 NFS 文件服务器、Lustre、OpenZFS、 FSx ONTAP（使用 NFS）或 Amazon EFS 文件系统时，硬链接会正确恢复。 FSx FSx 
+ **传输到 Microsoft Azure Blob Storage 时**，硬链接引用的每个底层文件仅传输一次。在增量传输期间，如果源中有新的引用，则会在您的 blob 存储中创建单独的对象。从中传输时Azure Blob Storage，将硬链接当作单个文件进行 DataSync 传输。
+ 在 **SMB 文件服务器、 FSx Windows 文件服务器和 FSx ONTAP（使用 SMB）之间传输时**，不支持硬链接。如果在这些情况下 DataSync 遇到硬链接，则传输任务完成时会出现错误。要了解更多信息，请查看您的 CloudWatch 日志。
+ **传输到 HDFS 时**，不支持硬链接。 CloudWatch 日志显示这些链接已跳过。

## 符号链接
<a name="special-files-copied-symbolic-links"></a>

以下是在一些常见的传输场景中如何 DataSync 处理符号链接：
+ 在 **NFS 文件服务器、Lustre、 FSx OpenZFS、 FSx ONTAP（使用 NFS）和 Amazon EFS 之间传输时，符号链接**会保留。 FSx 
+ **在传输到 Amazon S3 时**，链接目标路径将存储在 Amazon S3 对象中。在传输到 NFS 文件服务器、Lustre、OpenZFS、 FSx ONTAP 或 Amazon EFS 文件系统时， FSx 链接可以正确恢复。 FSx 
+ **传输到时 Azure Blob Storage**，不支持符号链接。 CloudWatch 日志显示这些链接已跳过。
+ 在 **SMB 文件服务器、 FSx Windows 文件服务器和 FSx ONTAP（使用 SMB）之间传输时**，不支持符号链接。 DataSync 不会传输符号链接本身，而是传输符号链接引用的文件。要识别重复文件并使用符号链接去重，您必须在目标文件系统上配置去重。
+ **传输到 HDFS 时**，不支持符号链接。 CloudWatch 日志显示这些链接已跳过。

## 目录
<a name="special-files-copied-directories"></a>

通常，在存储系统之间传输时会 DataSync 保留目录。以下情况并非如此：
+ **传输到 Amazon S3 时**，目录表示为带有前缀的空对象，并以正斜杠（`/`）结尾。
+ **在传输到没有分层名称空间的 Azure Blob Storage 时**，目录不存在。看起来像目录的内容只是对象名称的一部分。

# 配置文件、对象和元数据的处理方式
<a name="configure-metadata"></a>

您可以配置在不同位置之间传输时如何 AWS DataSync 处理文件、对象及其关联的元数据。

例如，对于定期传输，您可能希望使用源中的更改覆盖目标中的文件，以保持位置同步。您可以复制诸如文件和文件夹的 POSIX 权限、与对象关联的标签以及访问控制列表 (ACLs) 之类的属性。

## 传输模式选项
<a name="task-option-transfer-mode"></a>

您可以配置是仅 DataSync 传输初始副本后更改的数据（包括元数据），还是每次运行任务时传输所有数据。如果计划进行定期传输，则可能仅需要传输自上次执行任务以来发生更改的内容。


| 控制台中的选项 | API 中的选项 | 说明 | 
| --- | --- | --- | 
|  **仅传输更改的数据**  |  [TransferMode](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-TransferMode) 设置为 `CHANGED`  | 初次完全传输后，仅 DataSync 复制源位置和目标位置不同的数据和元数据。 | 
|  **传输所有数据**  |  [TransferMode](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-TransferMode) 设置为 `ALL`  |  DataSync 将源中的所有内容复制到目的地，而不比较位置之间的差异。  | 

## 文件和对象处理选项
<a name="task-option-file-object-handling"></a>

您可以控制如何 DataSync 处理目标位置中的文件或对象的某些方面。例如， DataSync 可以删除目标中不在源中的文件。


| 控制台中的选项 | API 中的选项 | 说明 | 
| --- | --- | --- | 
|  **保留已删除数据**  |  [PreserveDeletedFiles](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-PreserveDeletedFiles)  |  指定是否在目标位置 DataSync 维护源中不存在的文件或对象。 如果将任务配置为从 Amazon S3 存储桶中删除对象，则可能会为某些存储类产生最低存储持续时间费用。有关详细信息，请参阅 [Amazon S3 传输的存储类别注意事项](create-s3-location.md#using-storage-classes)。  无法将任务配置为删除目标中的数据，同时又[传输所有数据](#task-option-transfer-mode)。当您传输所有数据时， DataSync不会扫描您的目标位置，也不知道要删除什么。   | 
|  **覆盖文件**  |  [OverwriteMode](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-OverwriteMode)  |  指定在源数据或元数据发生更改时是否 DataSync 修改目标位置的数据。如果未将任务配置为覆盖数据，即使源数据不同，目标数据也不会覆盖。 如果您的任务覆盖对象，则您可能需要为某些存储类别（例如检索或提前删除）支付额外费用。有关详细信息，请参阅 [Amazon S3 传输的存储类别注意事项](create-s3-location.md#using-storage-classes)。  | 

## 元数据处理选项
<a name="task-option-metadata-handling"></a>

DataSync 可以在传输过程中保留文件和对象的元数据。 DataSync 可以保留的元数据取决于所涉及的存储系统以及这些系统是否使用类似的元数据结构。

在配置任务之前，请务必了解在源位置和目标位置之间传输时如何 DataSync 处理[元数据](metadata-copied.md)和[特殊文件](special-files-copied.md)。

**重要**  
DataSync 支持与某些第三方云存储系统（例如 Google Cloud Storage 和 IBM Cloud Object Storage）之间的传输，这些系统以不完全兼容 S3 的方式处理系统元数据。对于这些传 DataSync 输，会尽力复制元数据属性 `ContentType` `ContentEncoding``ContentLanguage`，例如、、和`CacheControl`。如果目标存储系统未应用这些属性，则在任务验证过程中会将其忽略。


| 控制台中的选项 | API 中的选项 | 说明 | 
| --- | --- | --- | 
|  **副本所有权**  | [https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-Gid](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-Gid) |  指定是否 DataSync 复制 POSIX 文件和文件夹所有权，例如文件所有者的组 ID 和文件所有者的用户 ID。  | 
|  **复制权限**  | [PosixPermissions](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-PosixPermissions) |  指定是否 DataSync 将文件和文件夹的 POSIX 权限从源复制到目标。  | 
| 复制时间戳 | [Atime](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-Atime) 和 [Mtime](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-Mtime) |  指定是否 DataSync 将时间戳元数据从源复制到目标。当您需要多次运行任务时，必须使用这些选项。  | 
| 复制对象标签 | [ObjectTags](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-ObjectTags) |  指定在对象存储系统之间传输时是否 DataSync 保留与您的对象关联的标签。  | 
| 副本所有权 DACLs、和 SACLs | [SecurityDescriptorCopyFlags ](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-SecurityDescriptorCopyFlags) 设置为 OWNER\$1DACL\$1SACL |  DataSync 复制以下内容： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/configure-metadata.html)  | 
| 副本所有权和 DACLs | [SecurityDescriptorCopyFlags ](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-SecurityDescriptorCopyFlags) 设置为 OWNER\$1DACL |  DataSync 复制以下内容： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/configure-metadata.html) DataSync 选择此选项 SACLs 时不会复制。  | 
| 不要复制所有权或 ACLs | [SecurityDescriptorCopyFlags ](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-SecurityDescriptorCopyFlags) 设置为 NONE |  DataSync 不复制任何所有权或权限数据。 DataSync 写入目标位置的对象归提供访问目标的凭证 DataSync的用户所有。目标对象权限是根据目标服务器上配置的权限确定的。  | 

## 配置文件、对象和元数据处理选项
<a name="configure-file-metadata-options"></a>

您可以配置在创建、编辑或启动传输任务时如何 DataSync 处理文件、对象和元数据。

### 使用控制 DataSync 台
<a name="configure-metadata-console"></a>

以下说明介绍了如何在创建任务时配置文件、对象和元数据处理选项。

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 对于**传输方式**，请选择下列选项之一：
   + **仅传输更改的数据**
   + **传输所有数据**

   有关这些选项的详细信息，请参阅[传输模式选项](#task-option-transfer-mode)。

1. 如果 DataSync 要在目标位置维护源中不存在的文件或对象，请选择 “**保留已删除**的文件”。

   如果您不选择此选项，并且您的任务从 Amazon S3 存储桶中删除对象，则可能会为某些存储类产生最低存储持续时间费用。有关详细信息，请参阅 [Amazon S3 传输的存储类别注意事项](create-s3-location.md#using-storage-classes)。
**警告**  
您不能取消选择此选项并启用**传输所有数据**。当您传输所有数据时， DataSync 不会扫描您的目标位置，也不知道要删除什么。

1. 如果 DataSync要在源数据或元数据发生更改时修改目标位置的数据，请选择 “**覆盖文件**”。

   如果您的任务覆盖对象，则您可能需要为某些存储类别（例如检索或提前删除）支付额外费用。有关详细信息，请参阅 [Amazon S3 传输的存储类别注意事项](create-s3-location.md#using-storage-classes)。

   如果不选择此选项，即使源数据不同，目标数据也不会被覆盖。

1. 在 “**传输选项**” 下，选择 DataSync 要如何处理元数据。有关选项的更多信息，请参阅[元数据处理选项](#task-option-metadata-handling)。
**重要**  
控制台中的选项取决于任务的源位置和目标位置。您可能需要展开**其他设置**，才能看到部分选项。
   + **副本所有权**
   + **复制权限**
   + **复制时间戳**
   + **复制对象标签**
   + **副本所有权 DACLs、和 SACLs**
   + **副本所有权和 DACLs**
   + **不要复制所有权或 ACLs**

### 使用 DataSync API
<a name="configure-file-metadata-options-api"></a>

可通过在以下任何操作中使用 `Options` 参数来配置文件、对象和元数据处理选项：
+ [CreateTask](https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html)
+ [StartTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html)
+ [UpdateTask](https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateTask.html)