このドキュメントでは、includePrefix
と excludePrefix
を使用して、転送からオブジェクトをフィルタする方法について説明します。
概要
プログラムにより転送を作成するときに、includePrefix
と excludePrefix
を使用すると、Storage Transfer Service の操作対象のオブジェクトを制限できます。includePrefix
と excludePrefix
は、転送を作成するときに TransferSpec
で指定できる省略可能フィールドです。includePrefix
は転送に含める特定のパスを指定し、excludePrefix
は除外する特定のパスを指定します。
転送するオブジェクトと転送しないオブジェクトの両方がパスに含まれる場合、includePrefix
と excludePrefix
を一緒に使用して、転送するオブジェクトを指定できます。
オブジェクトとパスの例
このドキュメントの例では、次のサンプルのオブジェクトおよびパスを使用します。
object_1 object_2 path_1/object_3/ path_2/object_4 |
path_1/subpath_1/object_5 path_1/subpath_2/object_6 path_2/subpath_3/object_7 path_2/subpath_4/object_8 |
パスを含める
転送の作成時に includePrefix
を使用して、一覧表示されたパスのオブジェクトを転送の対象として考慮に入れ、それらのパスに存在しないオブジェクトを無視するように、Storage Transfer Service に指示することができます。
たとえば、path_1/
下にあるオブジェクトを含めるには、includePrefix
に次を渡します。
includePrefix: "path_1/"
これにより、path_1/
、path_1/subpath_1
、path_1/subpath_2/
直下にあるオブジェクトも含められます。次のオブジェクトが転送に含められます。
path_1/object_3 |
path_1/subpath_1/object_5 path_1/subpath_2/object_6 |
含める特定のパスを指定することもできます。たとえば、includePrefix
に次を渡すことができます。
includePrefix: "path_1/subpath_2/", "path_1/subpath_3/"
この場合、次のオブジェクトが転送に含められます。
path_1/subpath_2/object_6 |
path_2/subpath_3/object_7 |
includePrefix
を使用する場合、明示的に含めていないパスは、Cloud Storage 転送先バケットに転送されません。
パスを除外する
転送の作成時に excludePrefix
を使用して、一覧表示されたパスを転送対象としては無視するように、Storage Transfer Service に指示します。
path_1/
下にあるオブジェクトを除外するには、excludePrefix
に次を渡します。
excludePrefix: "path_1/"
これにより、path_1/
、path_1/subpath_1/
、path_1/subpath_2/
の下にあるオブジェクトが除外されます。この場合、次のオブジェクトが転送に含められます。
object_1 object_2 |
path_2/object_4 path_2/subpath_3/object_7 path_2/subpath_4/object_8 |
除外する特定のパスを指定することもできます。たとえば、excludePrefix
に次を渡すことができます。
excludePrefix: "path_1/subpath_2/", "path_2/subpath_3/"
この場合、次のオブジェクトが転送に含められます。
object_1 object_2 path_1/object_3 path_2/object_4 |
path_1/subpath_1/object_5 path_2/subpath_4/object_8 |
含めるパスと除外するパスを同時に指定する
excludePrefix
と includePrefix
は一緒に適用できます。その場合、excludePrefix
は、includePrefix
で転送に含める対象をさらに制限します。
includePrefix
と excludePrefix
の両方を指定した場合、各 excludePrefix
は、includePrefix
に指定したいずれかの値で開始する必要があります。
たとえば、path_1/
下にあるオブジェクトを含めて、subpath_1/
下にあるオブジェクトを除外するには、次を渡します。
includePrefix: "path_1/"
excludePrefix: "path_1/subpath_1/"
この場合、次のオブジェクトが転送に含められます。
path_1/object_3 |
path_1/subpath_2/object_6 |
path_1/subpath_1/
または path_2/subpath_3/
のアイテムを除いて path_1/
と path_2/
の下にあるすべてのオブジェクトを含めるには、次を渡します。
includePrefix: "path_1/", "path_2/"
excludePrefix: "path_1/subpath_1/", "path_2/subpath_3/"
この場合、次のオブジェクトが転送に含められます。
path_1/object_3 path_2/object_4 |
path_1/subpath_2/object_6 path_2/subpath_4/object_8 |
含めるまたは除外するパスを間違って指定した例
以下のセクションでは、パスを含めるまたは除外するときに回避すべき例と、これらが正しく機能するように修正する方法について説明します。
別の包含接頭辞で使用されるパスを含める
それぞれの includePrefix
では、オブジェクトの名前空間の個別の部分を指定する必要があります。次の例は、2 番目の値が最初の値の名前空間にすでに含まれているため、正しくありません。
includePrefix: "path_1/", "path_1/subpath_1"
この例では、2 番目の includePrefix
、"path_1/subpath_1"
がすでに "path_1/"
に含まれているため、includePrefix
の値は無効です。これを修正するには、次のどちらを含めるかを選択します。
includePrefix: "path_1"
includePrefix: "path_1/subpath_1"
包含接頭辞で始まっていない除外接頭辞を使用する
それぞれの excludePrefix
は、指定された includePrefix
値のいずれかで始まる必要があります。次の例は、excludePrefix
値が指定された includePrefix
値で始まっていないため、正しくありません。
includePrefix: "path_1/", "path_2/"
excludePrefix: "subpath_1/", "subpath_4/"
この例では、excludePrefix
の値は、どちらの includePrefix
値(path_1
または path_2
)でも始まっていないので、無効です。これを修正するには、includePrefix
に一覧表示されている完全なパスを excludePrefix
に含めるようにします。
includePrefix: "path_1/", "path_2/"
excludePrefix: "path_1/subpath_1/", "path_2/subpath_4/"