

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用篩選條件傳輸特定檔案、物件和資料夾
<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 儲存貯體之間傳輸資料時，DataSync 會將物件金鑰中的`/`字元視為檔案系統上資料夾的同等項目。

**特殊字元**  
以下是可用於篩選條件的特殊字元。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/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. 在 https：//[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/) 開啟 AWS 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_folder2`時指定兩個包含篩選條件 `/important_folder1`和 。

```
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 for OpenZFS 位置。

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

1. 在 https：//[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/) 開啟 AWS 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`命令`*/tmp`時指定兩個排除篩選條件`*/temp`和 。

```
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'
```