篩選傳輸的資料AWS DataSync - AWS DataSync

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

篩選傳輸的資料AWS DataSync

AWS DataSync如果您只想傳輸資料子集 (例如特定檔案、資料夾或物件),則可讓您套用篩選器。

例如,如果您的來源位置包含以結尾的暫存檔案.tmp,您可以建立排除篩選器,以防止這些檔案前往目的地位置。您也可以在同一工作中使用排除和包含篩選器的組合。

篩選術語、定義和語法

以下是一些可與篩選搭配使用的術語和定義:

篩選條件

組成特定篩選器的整個字串 (例如:*.tmp|*.temp/folderA|/folderB)。

過濾器由用 |(管道)分隔的模式組成。當您在控制台上添加模式時不需要分隔符,因為您單獨添加每個模式。

注意

過濾器區分大小寫。例如,篩選條件/folderA不相符/FolderA

Pattern

篩選條件的模式。例如,*.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 匹配以 tmptemp 結尾的檔案。

注意

當您在控制台上添加模式時,不需要此分隔符號,因為您將每個模式添加到單獨的行上。

\ (反斜線)

用來逸出檔案或物件名稱中特殊字元 (*、|、\) 的字元。

當檔案名稱包含斜線時,必須使用雙斜線 (\\)。同樣地,\\\\ 在檔案名稱中代表兩個連續的斜線。

當檔案名稱中包含縱線字元時,必須使用接在斜線後面的縱線字元 (\|)。

會忽略反斜線 (\) 後面接著任何其他字元,或在樣式的結尾處。

從傳輸中排除資料

在您將檔案從來源傳輸到目的地位置時,排除篩選條件可定義要排除的檔案、資料夾和物件。您可以在建立、編輯或啟動工作時設定這些篩選器。

若要在DataSync主控台中使用排除篩選器建立工作,請在 [排除模式] 下的 [資料傳輸設定] 區段中指定模式清單。例如,若要排除名為temp或的暫存資料夾tmp,您可以*/temp在 [排除模式] 文字方塊中指定,選擇 [新增模式],然後*/tmp在第二個文字方塊中指定。若要新增更多模式到篩選條件,請選擇 Add pattern (新增模式)。當您使用AWS Command Line Interface (AWS CLI) 時,過濾器周圍需要單引號 ('),並使用 |(管道)作為分隔符。在此範例中,您可以指定'*/temp |*/tmp'

建立工作之後,您可以編輯工作組態,以在排除篩選器中新增或移除模式。您的變更會套用至 future 的工作執行。

當您執行工作時,您可以使用 [以覆寫項啟動] 選項來修改排除篩選器模式。您所做的任何變更只會套用至該工作的執行。

您也可以使用建AWS CLI立或編輯排除篩選器。以下範例顯示這種 CLI 命令。

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' --cloud-watch-log-group-arn 'arn:aws:logs:region:account-id:log-group:your-log-group' --name your-task-name --excludes FilterType=SIMPLE_PATTERN,Value='*/temp|*/tmp'
注意

如果您要從NetApp系統移轉檔案,建議您在排除篩選器中指定*/.snapshot為模式,以排除NetApp備份資料夾。

在傳輸中包含資料

包含篩選器可定義執行工作時DataSync傳送的檔案、資料夾和物件。您可以在建立、編輯或啟動工作時設定包含篩選器。

若要使用包含篩選器建立工作,請選擇 [特定檔案和資料夾] 選項,然後在 [包含模式] 下指定要包含的模式清單。

DataSync僅掃描和傳輸符合包含過濾器的文件和文件夾。例如,若要包含來源資料夾的子集,您可以指定/important_folder_1 |/important_folder_2

建立工作之後,您可以編輯工作組態,以新增或移除包含篩選器中的模式。您所做的任何變更都會套用至 future 的工作執行。

當您執行工作時,您可以使用 [以覆寫開始] 選項來修改包含篩選器模式。您所做的任何變更只會套用至該工作的執行。

您也可以使用建AWS CLI立或編輯包含篩選器。以下範例顯示 CLI 命令。記下篩選器周圍的引號 (') 以及用作分隔符號的| (管道)。

aws datasync start-task-execution --task-arn 'arn:aws:datasync:region:account-id:task/task-id' --includes FilterType=SIMPLE_PATTERN,Value='/important_folder1|/important_folder2'
注意

「包含」篩選器僅支援萬用字元 (*) 作為樣式中最右邊的字元。例如,支援/documents* |/code*,但*.txt不支援。

範例篩選

下列範例示範您可以使用的一般篩選器DataSync。

注意

篩選條件中可以使用的字元數目有限制。如需詳細資訊,請參閱DataSync工作配額

從來源位置排除一些資料夾

在某些情況下,您可能會排除來源位置中的資料夾,以免將其複製到目的地位置。例如,您可能會有暫存的work-in-progress資料表 或者,您可能會使用NetApp系統並想要排除備份資料夾。在這些情況下,您可以使用下列的過濾器。

*/.snapshot

若要排除具有類似內容 (例如/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