

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# フィルターを使用した特定のファイル、オブジェクト、フォルダの転送
<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/ja_jp/datasync/latest/userguide/filtering.html)

## フィルターの例:
<a name="sample-filters"></a>

次の例では、共通のフィルターを DataSync とともに使用する方法を示しています。

**注記**  
フィルターで使用できる文字数には制限があります。詳細については、「[DataSync クォータ](datasync-limits.md#task-hard-limits)」を参照してください。

**ソースの場所から一部のフォルダの除外**  
場合によっては、ソースの場所のフォルダを除外してコピー先にコピーしないようにすることもあります。たとえば、作業中の一時的なフォルダーがある場合は、次のようなフィルターを使用できます。

`*/.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://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/) で AWS DataSync コンソールを開きます。

1. ナビゲーションペインで **[タスク]** を選択してから、**[タスクの作成]** を選択します。

1. タスクのソースと転送先の場所を設定します。

   詳細については、[でデータを転送できる場所 AWS DataSync](working-with-locations.md)を参照してください。

1. **コンテンツをスキャンするには**、**特定のファイル、オブジェクト、フォルダ**を選択し、**[Using filters]** を選択します。

1. **[包含]** には、フィルター (例えば、重要なディレクトリを含める `/important_folders` など) を入力し、**[パターンを追加する]** を選択します。

1. 必要に応じて、他の包含フィルターも追加します。

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

を使用する場合は AWS CLI、フィルターの周囲に一重引用符 (`'`) を使用し、複数のフィルターがある場合は \$1 (パイプ) を区切り文字として使用する必要があります。

次の例では、`create-task` コマンドを実行するときに 2 つの包含フィルター `/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` で終わるパスをすべて無視します。これは通常、ストレージシステムのファイルまたはディレクトリのポイントインタイムスナップショットに使用されます。
+ `/.aws-datasync` と `/.awssync` – DataSync は、転送を容易にするためにこれらのディレクトリをユーザーの場所に作成します。
+ `/.zfs` – Amazon FSx for OpenZFS のロケーションのディレクトリが表示される場合があります。

### DataSync コンソールの使用
<a name="adding-exclude-filters"></a>

1. [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` コマンドを実行するときに 2 つの除外フィルター `*/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'
```