Filtrer les objets des transferts

Ce document explique comment filtrer les objets des transferts à l'aide de includePrefix et excludePrefix.

Présentation

Vous pouvez utiliser includePrefix et excludePrefix lorsque vous créez des transferts par programmation pour limiter les objets sur lesquels le service de transfert de stockage agit. includePrefix et excludePrefix sont des champs facultatifs que vous pouvez spécifier dans TransferSpec lors de la création d'un transfert. An includePrefix indique les chemins d'accès spécifiques à inclure pour un transfert, et excludePrefix les chemins à exclure.

Si un chemin inclut à la fois des objets que vous souhaitez et ne souhaitez pas transférer, vous pouvez utiliser includePrefix et excludePrefix ensemble pour spécifier les objets à transférer.

Exemples d'objets et de chemins d'accès

Les exemples de ce document s'appuient sur les exemples d'objets et de chemins d'accès suivants :

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

Inclure des chemins d'accès

Vous pouvez utiliser includePrefix lors de la création d'un transfert pour indiquer au service de transfert de stockage de prendre en compte les objets dans les chemins d'accès répertoriés pour le transfert et d'ignorer les objets absents.

Par exemple, pour inclure des objets sous path_1/, transmettez includePrefix comme suit :

includePrefix: "path_1/"

Cela inclut les objets directement sous path_1/, path_1/subpath_1 et path_1/subpath_2/. Les objets suivants sont inclus dans le transfert :

path_1/object_3
path_1/subpath_1/object_5
path_1/subpath_2/object_6

Vous pouvez également spécifier des chemins d'accès spécifiques à inclure. Par exemple, vous pouvez transmettre includePrefix comme suit :

includePrefix: "path_1/subpath_2/", "path_1/subpath_3/"

Dans ce cas, le transfert inclut les objets suivants :

path_1/subpath_2/object_6
path_2/subpath_3/object_7

Lorsque vous utilisez includePrefix, les chemins que vous n'incluez pas spécifiquement ne sont pas transférés vers le bucket de destination Cloud Storage.

Exclure des chemins d'accès

L'utilisation de excludePrefix lors de la création d'un transfert indique au service de transfert de stockage d'ignorer les chemins d'accès répertoriés pour le transfert.

Pour exclure des objets sous path_1/, transmettez excludePrefix comme suit :

excludePrefix: "path_1/"

Cela exclut les objets sous path_1/, path_1/subpath_1/ et path_1/subpath_2/. Dans ce cas, les objets suivants sont inclus dans le transfert :

object_1
object_2
path_2/object_4
path_2/subpath_3/object_7
path_2/subpath_4/object_8

Vous pouvez également indiquer des chemins d'accès spécifiques à exclure. Par exemple, vous pouvez transmettre excludePrefix comme suit :

excludePrefix: "path_1/subpath_2/", "path_2/subpath_3/"

Dans ce cas, le transfert inclut les objets suivants :

object_1
object_2
path_1/object_3
path_2/object_4
path_1/subpath_1/object_5
path_2/subpath_4/object_8

Inclure et exclure simultanément des chemins d'accès

Vous pouvez appliquer conjointement excludePrefix et includePrefix, auquel cas excludePrefix limite davantage ce que includePrefix inclut dans le transfert.

Lorsque vous spécifiez à la fois includePrefix et excludePrefix, chaque élément excludePrefix doit commencer par l'une des valeurs que vous avez spécifiées pour includePrefix.

Par exemple, pour inclure des objets sous path_1/ et exclure des objets sous subpath_1/, transmettez ce qui suit :

includePrefix: "path_1/"
excludePrefix: "path_1/subpath_1/"

Dans ce cas, le transfert inclut les objets suivants :

path_1/object_3
path_1/subpath_2/object_6

Pour inclure tous les objets sous path_1/ et path_2/, à l'exception des éléments dans path_1/subpath_1/ ou path_2/subpath_3/, transmettez ce qui suit :

includePrefix: "path_1/", "path_2/"
excludePrefix: "path_1/subpath_1/", "path_2/subpath_3/"

Dans ce cas, le transfert inclut les objets suivants :

path_1/object_3
path_2/object_4
path_1/subpath_2/object_6
path_2/subpath_4/object_8

Exemples d'inclusion ou d'exclusion incorrecte de chemins d'accès

Les sections suivantes incluent des exemples à éviter lors de l'utilisation de l'inclusion ou de l'exclusion de chemins, et indiquent comment les corriger pour aboutir à un fonctionnement correct.

Inclure un chemin d'accès utilisé dans un autre préfixe "include-prefix"

Chaque élément includePrefix doit spécifier une partie distincte de l'espace de noms d'objet. L'exemple suivant est incorrect, car la deuxième valeur est déjà incluse dans l'espace de noms de la première valeur :

includePrefix: "path_1/", "path_1/subpath_1"

Dans cet exemple, les valeurs includePrefix ne sont pas valides, car le second includePrefix, "path_1/subpath_1", est déjà inclus dans "path_1/". Pour résoudre ce problème, choisissez l'une ou l'autre de ces solutions :

  • includePrefix: "path_1"
  • includePrefix: "path_1/subpath_1"

Utiliser un préfixe "exclude-prefix" qui ne commence pas par un préfixe "include-prefix"

Chaque élément excludePrefix doit commencer par l'une des valeurs includePrefix spécifiées. L'exemple suivant est incorrect, car les valeurs excludePrefix ne commencent pas par les valeurs includePrefix spécifiées :

includePrefix: "path_1/", "path_2/"
excludePrefix: "subpath_1/", "subpath_4/"

Dans cet exemple, les valeurs excludePrefix ne sont pas valides, car elles ne commencent pas par l'une des valeurs includePrefix, path_1 ou path_2. Pour résoudre ce problème, assurez-vous que excludePrefix inclut un chemin d'accès complet répertorié dans includePrefix :

includePrefix: "path_1/", "path_2/"
excludePrefix: "path_1/subpath_1/", "path_2/subpath_4/"