過濾傳輸的數據AWS DataSync - AWS DataSync

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

過濾傳輸的數據AWS DataSync

當您將檔案從來源傳輸至目的地位置時,可以套用篩選條件,傳輸來源位置中的部分檔案。您可以使用篩選條件指定要排除或包含在傳輸中的檔案、資料夾和物件。例如,如果您的來源位置包含以.tmp,您可以建立排除篩選條件,確保這些檔案不會傳輸到目的地。

篩選條件是選用的組態,以指定您是否要傳輸部分的來源檔案。如果您要將所有檔案從來源位置傳輸至目的地位置,可以保留空白的篩選條件組態。您也可以在同一個工作中使用排除和包含篩選器。

篩選詞彙、定義和語法

以下是篩選時可使用的一些條件和定義:

篩選條件

組成特定篩選條件的整個字串,例如:*.tmp|*.temp/folderA|/folderB

以 | (縱線字元) 分隔的模式組成的篩選條件。當您在主控台新增模式時,不需要使用分隔符號,因為您分別新增每個模式。

Pattern

篩選條件的模式。例如:*.tmp是一種模式,它是*.tmp|*.temp篩選條件。

資料夾
  • 所有篩選條件皆相對於來源位置路徑。例如,假設您指定指定/my_source/做為來源路徑,並指定包含篩選條件/transfer_this/。在這種情況下,DataSync 只會傳輸目錄/my_source/transfer_this/及其內容。

  • 若要指定來源位置的下一層資料夾,請在資料夾名稱前面加上斜線 (/)。在之前的範例中,模式使用 /transfer_this 而非 transfer_this

  • DataSync 以相同的方式解譯下列模式,並匹配資料夾及其內容。

    /dir

    /dir/

  • 當您將檔案傳輸到 Amazon S3 儲存貯體或從該儲體傳輸資料時,DataSync 會將物件金鑰中的/字元視為等同於檔案系統上的資料夾。

特殊字元

以下是可用於篩選條件的特殊字元。

特殊字元 描述

* (萬用字元)

此字元可用於匹配零或多個字元。例如,/movies_folder* 可匹配 /movies_folder/movies_folder1

| (縱線字元分隔符號)

此字元可做為模式之間的分隔符號。它可用於指定多個模式,其中的任何模式皆可匹配篩選條件。例如,*.tmp|*.temp 匹配以 tmptemp 結尾的檔案。

注意

當您在主控台新增模式時,不需要使用分隔符號,因為新增每個模式時都會加入分隔線。

\ (反斜線)

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

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

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

系統會忽略反斜線 (\),並接著任何其他字元,或在模式結尾處的反斜線字元。

從傳輸中排除資料

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

若要在 DataSync 主控台中使用排除篩選器建立工作,請在資料傳輸組態區段下排除模式。例如,若要排除名為temptmp,您可以指定*/temp中的排除模式文字方塊,選擇新增模式,然後指定*/tmp在第二個文字方塊。若要新增更多模式到篩選條件,請選擇 Add pattern (新增模式)。如果您使用的是AWS Command Line Interface(AWS CLI)、單引號 ('),並且必須使用 | (縱線字元) 做為分隔符號。在此範例中,您將指定'*/temp|*/tmp'

在您建立任務之後,可以編輯任務組態,為排除篩選條件新增或移除模式。您的變更會套用到任務的未來執行。

當您執行任務時,可以使用從覆寫開始選項。您所做的任何變更都只會套用至該工作的執行。

您也可以使用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 系統遷移檔案,建議您指定以排除 NetApp 備份資料夾,方法是指定*/.snapshot作為排除過濾器中的模式。

在傳輸中包含資料

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

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

DataSync 只會掃描和傳輸符合包含篩選器的檔案和資料夾。例如,若要包含來源資料夾的子集,您可以指定指定來源資料夾的子集。/important_folder_1|/important_folder_2

在您建立任務之後,可以編輯任務組態,為包含篩選條件新增或移除模式。您所做的任何變更會套用到任務的未來執行。

當您執行任務時,可以使用從覆寫開始選項。您所做的任何變更都只會套用至該工作的執行。

您也可以使用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不支援 。

常見用途的篩選範例

在此部分,您可以找到常用的篩選條件及其範例篩選條件。

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

在某些情況下,您可能會排除來源位置中的資料夾,避免這些資料夾複製到目的地位置。例如,您可能有臨時的進行中資料夾。或者,您可能會使用 NetApp 系統,並且想要排除 NetApp 備份資料夾。在這些情況下,您可以使用以下篩選條件。

*/.snapshot

若要排除檔案階層中任何層級的資料夾,您可以建立一個任務來設定排除篩選條件如下。

*/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"

注意

篩選條件字串長度不得超過 409,600 個字元。