本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
篩選傳輸的資料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
匹配以tmp
或temp
結尾的檔案。注意
當您在控制台上添加模式時,不需要此分隔符號,因為您將每個模式添加到單獨的行上。
\
(反斜線)用來逸出檔案或物件名稱中特殊字元 (*、|、\) 的字元。
當檔案名稱包含斜線時,必須使用雙斜線 (\\)。同樣地,\\\\ 在檔案名稱中代表兩個連續的斜線。
當檔案名稱中包含縱線字元時,必須使用接在斜線後面的縱線字元 (\|)。
會忽略反斜線 (\) 後面接著任何其他字元,或在樣式的結尾處。
從傳輸中排除資料
在您將檔案從來源傳輸到目的地位置時,排除篩選條件可定義要排除的檔案、資料夾和物件。您可以在建立、編輯或啟動工作時設定這些篩選器。
若要在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
' --nameyour-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
」