使用篩選條件傳輸特定檔案、物件和資料夾 - AWS DataSync

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

使用篩選條件傳輸特定檔案、物件和資料夾

AWS DataSync 可讓您套用篩選條件,以在傳輸中包含或排除來源位置中的資料。例如,如果您不想傳輸結尾為 的暫存檔案.tmp,您可以建立排除篩選條件,讓這些檔案不會前往目的地位置。

您可以使用排除的組合,並在相同的傳輸任務中包含篩選條件。如果您修改任務的篩選條件,這些變更會在您下次執行任務時套用。

篩選詞彙、定義和語法

熟悉與 DataSync 篩選相關的概念:

篩選條件

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

篩選條件由使用管道 (|) 分隔的模式組成。當您在 DataSync 主控台中新增模式時,不需要分隔符號,因為您分別新增每個模式。

注意

篩選條件區分大小寫。例如,篩選條件/folderA不符合 /FolderA

模式

篩選條件的模式。例如, *.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 使用的常見篩選條件。

注意

您可以在篩選條件中使用多少字元有限制。如需詳細資訊,請參閱DataSync 配額

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

在某些情況下,您希望 排除來源位置中的資料夾,使其不會複製到目的地位置。例如,如果您有臨時work-in-progress資料夾,您可以使用如下篩選條件:

*/.temp

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

建立包含篩選條件

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

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

注意

包含篩選條件僅支援萬用字元 (*) 做為模式中最右側的字元。例如,支援 /documents*|/code*,但*.txt不支援。

  1. 在 https://https://console.aws.amazon.com/datasync/ 開啟 AWS DataSync 主控台。

  2. 在左側導覽窗格中,選擇任務,然後選擇建立任務

  3. 設定任務的來源和目的地位置。

    如需詳細資訊,請參閱 哪裡可以使用 傳輸資料 AWS DataSync?

  4. 針對要掃描的內容,選擇特定檔案、物件和資料夾,然後選取使用篩選條件

  5. 對於包含,輸入您的篩選條件 (例如/important_folders,要包含重要目錄),然後選擇新增模式

  6. 視需要新增其他包含篩選條件。

使用 時 AWS CLI,您必須在篩選條件周圍使用單引號 ('),如果您有多個篩選條件,則必須使用 | (管道) 做為分隔符號。

下列範例指定兩個包含篩選條件,/important_folder1並在執行 create-task 命令/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'

建立排除篩選條件

排除篩選條件會定義您不希望 DataSync 傳輸之來源位置中的檔案、物件和資料夾。您可以在建立、編輯或啟動任務時設定這些篩選條件。

預設排除的資料

DataSync 會自動排除某些資料傳輸:

  • .snapshot – DataSync 會忽略結尾為 的任何路徑.snapshot,通常用於儲存系統檔案或目錄的point-in-time快照。

  • /.aws-datasync/.awssync – DataSync 會在您的位置建立這些資料夾,以協助促進傳輸。

  • /.zfs – 您可能會看到此資料夾搭配 Amazon FSx for OpenZFS 位置。

  1. 在 https://https://console.aws.amazon.com/datasync/ 開啟 AWS DataSync 主控台。

  2. 在左側導覽窗格中,選擇任務,然後選擇建立任務

  3. 設定任務的來源和目的地位置。

    如需詳細資訊,請參閱 哪裡可以使用 傳輸資料 AWS DataSync?

  4. 對於排除,輸入您的篩選條件 (例如*/temp,要排除臨時資料夾),然後選擇新增模式

  5. 視需要新增其他排除篩選條件。

  6. 如有需要,請新增包含篩選條件

使用 時 AWS CLI,您必須在篩選條件周圍使用單引號 ('),如果您有多個篩選條件,則必須使用 | (管道) 做為分隔符號。

下列範例會指定兩個排除篩選條件,*/temp並在執行 create-task命令*/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'