En esta página, se muestra cómo incluir y excluir rutas de transferencias mediante incluir y excluir prefijos.
Si quieres aprender a crear un manifiesto de objetos específicos para transferir, consulta Transfiere objetos o archivos específicos con un manifiesto.
Descripción general
El Servicio de transferencia de almacenamiento admite el uso de prefijos para seleccionar los archivos que se desean incluir o excluir de la fuente de datos. Puedes usar prefijos de inclusión, de exclusión, o ambos juntos.
Se admite el filtrado por prefijo para las fuentes de datos de Amazon S3, Microsoft Azure Blob Storage y Cloud Storage.
No se debe incluir la barra final previa en un prefijo. Por ejemplo, para incluir el objeto
requests.gz
en una transferencia desde la siguiente ruta de buckets3://my-aws-bucket/logs/y=2015/requests.gz
, especifique el prefijo de inclusión comologs/y=2015/requests.gz
.Se admiten coincidencias parciales para los prefijos de inclusión y exclusión. Por ejemplo:
path
coincide conpath_1/
ypath_2/
.Los comodines no son compatibles.
Si especificaste una carpeta como ubicación de origen, los filtros de prefijo se refieren a esa carpeta. Por ejemplo, si la fuente es
gs://my-test-bucket/path/
, un filtro de inclusión defile
incluye todos los archivos que comienza congs://my-test-bucket/path/file
.Cada prefijo de inclusión debe incluir una parte distinta del espacio de nombres del objeto. Ningún prefijo de inclusión puede ser un prefijo de otro prefijo de inclusión. Por ejemplo: no puedes especificar tanto
path_1
comopath_1/subpath_2
como prefijos.Si usas prefijos de inclusión y exclusión en conjunto, los de exclusión deben comenzar con el valor de uno de los de inclusión. Por ejemplo, si especificas
a
como un prefijo de inclusión, los prefijos de exclusión válidos sona/b
,aaa
yabc
.Si solo usas prefijos de exclusión, no hay restricciones para los prefijos que puedes usar.
Si no especificas prefijos, se transferirán todos los objetos que estén en el bucket.
Para obtener más información general sobre prefijos, consulta Enumera las claves en orden jerárquico mediante un prefijo y un delimitador en la documentación de Amazon S3 o en el método de lista de objetos de Cloud Storage.
Cómo especificar prefijos
Consola de Cloud
Para especificar prefijos de inclusión y exclusión con la consola de Cloud, ingresa los valores cuando crees una transferencia nueva o cuando actualices una transferencia existente.
gcloud CLI
Para especificar los prefijos de inclusión y exclusión con la CLI de gcloud
, pasa las marcas --include-prefixes
y --exclude-prefixes
al comando gcloud transfer jobs create
o al comando gcloud transfer jobs update
:
gcloud transfer jobs create SOURCE DESTINATION \
--include-prefixes="path_1/,path_2/" --exclude-prefixes="path_1/subpath_2/"
Separa los varios prefijos con comas y omite los espacios después de las comas.
Por ejemplo, --include-prefixes=foo,bar
.
REST
Para especificar prefijos de inclusión y exclusión con la API de REST, usa el
Campos includePrefixes[]
y excludePrefixes[]
:
{
"description": "YOUR DESCRIPTION",
"status": "ENABLED",
"projectId": "PROJECT_ID",
"schedule": {
"scheduleStartDate": {
"day": 1,
"month": 1,
"year": 2015
},
"startTimeOfDay": {
"hours": 1,
"minutes": 1
}
},
"transferSpec": {
"gcsDataSource": {
"bucketName": "GCS_SOURCE_NAME"
},
"gcsDataSink": {
"bucketName": "GCS_SINK_NAME"
},
"transferOptions": {
"deleteObjectsFromSourceAfterTransfer": true
},
"objectConditions": {
"includePrefixes": [
"path_1/",
"path_2/"
],
"excludePrefixes": [
"path_1/subpath_2/object_5"
]
}
}
}
Para obtener más información, consulta la referencia de ObjectConditions
.
Ejemplos de objetos y rutas
En los ejemplos de este documento se usan los siguientes objetos y las siguientes rutas de muestra:
xx://bucketname/object_1
xx://bucketname/object_2
xx://bucketname/path_1/object_3
xx://bucketname/path_2/object_4
xx://bucketname/path_1/subpath_1/object_5
xx://bucketname/path_1/subpath_2/object_6
xx://bucketname/path_2/subpath_3/object_7
xx://bucketname/path_2/subpath_4/object_8
Incluir prefijos
Usa prefijos de inclusión cuando crees una transferencia para indicar El Servicio de transferencia de almacenamiento para considerar los objetos en las rutas de acceso enumeradas para la transferencia. e ignorar los objetos que no se encuentren en esas rutas.
Por ejemplo, para incluir objetos en path_1/
, usa el siguiente prefijo:
path_1/
Esto incluye objetos directamente en path_1/
, path_1/subpath_1
y path_1/subpath_2/
. Los siguientes objetos se incluyen en la transferencia:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3xx://bucketname/path_2/object_4xx://bucketname/path_1/subpath_1/object_5 xx://bucketname/path_1/subpath_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Puedes especificar varias rutas de acceso para incluir. Por ejemplo, puedes pasar lo siguiente:
path_1/subpath_2/ path_1/subpath_3/
En este caso, la transferencia incluye los siguientes objetos:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3xx://bucketname/path_2/object_4xx://bucketname/path_1/subpath_1/object_5xx://bucketname/path_1/subpath_2/object_6 xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Se admiten coincidencias parciales. Por ejemplo, si especificas path
como el valor de
Un prefijo de inclusión coincide con los siguientes objetos:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3 xx://bucketname/path_2/object_4 xx://bucketname/path_1/subpath_1/object_5 xx://bucketname/path_1/subpath_2/object_6 xx://bucketname/path_2/subpath_3/object_7 xx://bucketname/path_2/subpath_4/object_8
Cuando usas prefijos de inclusión, no se incluyen al bucket de destino de Cloud Storage.
Excluir prefijos
El uso de prefijos de exclusión al crear una transferencia le indica al Servicio de transferencia de almacenamiento que ignorar las rutas enumeradas para la transferencia.
Para excluir objetos en path_1/
, pasa el siguiente prefijo:
path_1/
Esto excluye los objetos en path_1/
, path_1/subpath_1/
y path_1/subpath_2/
. En este caso, se incluyen los siguientes objetos en la transferencia:
xx://bucketname/object_1 xx://bucketname/object_2xx://bucketname/path_1/object_3xx://bucketname/path_2/object_4xx://bucketname/path_1/subpath_1/object_5xx://bucketname/path_1/subpath_2/object_6xx://bucketname/path_2/subpath_3/object_7 xx://bucketname/path_2/subpath_4/object_8
Puedes especificar varias rutas de acceso para excluirlas. Por ejemplo, puedes pasar lo siguiente:
path_1/subpath_2/
path_2/subpath_3/
En este caso, la transferencia incluye los siguientes objetos:
xx://bucketname/object_1 xx://bucketname/object_2 xx://bucketname/path_1/object_3 xx://bucketname/path_2/object_4 xx://bucketname/path_1/subpath_1/object_5xx://bucketname/path_1/subpath_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Incluye y excluye rutas de acceso de manera simultánea
Puedes aplicar un prefijo de exclusión y uno de inclusión juntos, en cuyo caso el prefijo de exclusión limita lo que incluye el prefijo de inclusión en el de datos entre sitios.
Cuando especifiques ambos tipos de prefijos, cada prefijo de exclusión debe comenzar con una ruta de acceso que se especifique en un prefijo de inclusión.
Por ejemplo, para incluir objetos en path_1/
y excluir objetos en subpath_1/
, pasa lo siguiente:
include: path_1/
exclude: path_1/subpath_1/
En este caso, la transferencia incluye los siguientes objetos:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3xx://bucketname/path_2/object_4xx://bucketname/path_1/subpath_1/object_5xx://bucketname/path_1/subpath_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Para incluir todos los objetos en path_1/
y path_2/
, excepto los elementos en path_1/subpath_1/
o path_2/subpath_3/
, pasa lo siguiente:
include: path_1/
path_2/
exclude: path_1/subpath_1/
path_2/subpath_3/
En este caso, la transferencia incluye los siguientes objetos:
xx://bucketname/object_1xx://bucketname/object_2xx://bucketname/path_1/object_3 xx://bucketname/path_2/object_4xx://bucketname/path_1/subpath_1/object_5xx://bucketname/path_1/subpath_2/object_6xx://bucketname/path_2/subpath_3/object_7xx://bucketname/path_2/subpath_4/object_8
Ejemplos de inclusión o exclusión incorrecta de las rutas de acceso
En las siguientes secciones, se incluyen ejemplos que se deben evitar cuando se usan rutas de inclusión o exclusión y se indica cómo corregirlas para que funcionen correctamente.
Incluir una ruta de acceso que se utiliza en otro prefijo de inclusión
Cada prefijo de inclusión debe especificar una parte distinta del espacio de nombres del objeto. El siguiente ejemplo es incorrecto, ya que el segundo valor está incluido en el espacio de nombres del primer valor:
include: path_1/
path_1/subpath_1
En este ejemplo, los valores del prefijo de inclusión no son válidos, ya que el segundo prefijo de inclusión, path_1/subpath_1
, ya se incluye en path_1/
.
Para solucionar este problema, quita uno de los valores.
Utilizar un prefijo de exclusión que no comience con un prefijo de inclusión
Cada prefijo de exclusión debe comenzar con cualquiera de los valores de prefijo de inclusión especificados. El siguiente ejemplo es incorrecto, ya que los valores del prefijo de exclusión no comienzan con los valores del prefijo de inclusión especificados:
include: path_1/
path_2/
exclude: subpath_1
subpath_4
En este ejemplo, los valores del prefijo de exclusión no son válidos porque no comienzan con cualquiera de los valores de prefijo de inclusión. Para solucionarlo, asegúrate de que el prefijo de exclusión incluya una ruta de acceso completa como prefijo de inclusión:
include: path_1/
path_2/
exclude: path_1/subpath_1/
path_2/subpath_4/
¿Qué sigue?
- Aprende a hacer lo siguiente: transferir una lista específica de objetos o archivos.