篩選依據傳輸的資料AWS DataSync - 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 控制台中,指定資料傳輸配置部分排除模式。例如,要排除名為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作為排除過濾器中的模式。

在傳輸中包含數據

包含過濾器定義檔案、資料夾和物件 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 搭配使用的常用篩選條件。

注意

創建自己的過濾器時,請確保您知道任務篩選條件限制

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

在某些情況下,您可能會排除來源位置中的資料夾,避免它們複製到目的地位置。例如,您可能有臨時的進行中資料夾。或者您可以使用 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"