Filtra objetos de origen por hora de modificación

Puedes filtrar los objetos que se transferirán según la hora de la última modificación. Esto te permite transferir solo los objetos modificados de las siguientes maneras:

  • Antes o después de una fecha y hora específicas
  • Antes o después de una cantidad especificada de tiempo transcurrido en relación con el trabajo de transferencia

Esta función es útil para configurar transferencias incrementales o para omitir objetos que no se encuentran dentro de un período.

El filtrado por hora de última modificación es compatible con las transferencias de todas las fuentes, excepto las listas de URLs.

Filtros basados en el tiempo

El filtrado se define con los valores last modified since, last modified before, minimum time elapsed since modified y maximum time elapsed since modified. Puedes usar los filtros de forma individual o en conjunto para crear un período.

Campo Descripción
Última modificación desde el Incluye los objetos de la transferencia que se modificaron por última vez en esta marca de tiempo o después de ella.
Última modificación antes del Incluye los objetos de la transferencia que se modificaron por última vez antes de esta marca de tiempo.
Tiempo mínimo transcurrido desde la modificación Incluye los objetos de la transferencia que se modificaron por última vez hace al menos este tiempo. Por ejemplo, este filtro se puede usar para incluir solo los objetos que se modificaron hace al menos un mes. También se transfieren los objetos sin una "hora de última modificación".
Tiempo máximo transcurrido desde la modificación Incluye los objetos de la transferencia que se modificaron por última vez hace no más de este tiempo. Por ejemplo, este filtro se puede usar para incluir solo los objetos que se modificaron en los últimos 7 días. También se transfieren los objetos sin una "hora de última modificación".

Cómo especificar un filtro basado en el tiempo

Puedes especificar filtros de hora de modificación cuando crees o actualices un trabajo de transferencia.

Las marcas de tiempo deben estar en UTC y formateadas como una cadena RFC 3339 (p.ej., 2025-10-31T10:00:00Z). Las duraciones usan el formato de duración absoluta (p.ej., 1m para 1 mes; 1h30m para 1 hora y 30 minutos).

Consola de Google Cloud

Para especificar un filtro de tiempo en la consola de Google Cloud, haz lo siguiente:

  1. Ve a la página Crear trabajo de transferencia o Editar trabajo de transferencia.
  2. En la sección Elegir datos para transferir, selecciona Fechas y horas como el Tipo de filtro.
  3. Ingresa una fecha y hora para el Intervalo de tiempo absoluto o una duración para el Intervalo de tiempo relativo. Se pueden especificar varios filtros juntos.

gcloud CLI

Para filtrar por hora de modificación con la gcloud CLI, pasa las marcas de filtro basadas en el tiempo al comando gcloud transfer jobs create o gcloud transfer jobs update:

gcloud transfer jobs create SOURCE DESTINATION \
  --include-modified-before-absolute="DATETIME" \
  --include-modified-after-absolute="DATETIME" \
  --include-modified-before-relative="DURATION" \
  --include-modified-after-relative="DURATION"

Aquí:

  • --include-modified-before-absolute incluye los objetos modificados por última vez antes de una fecha y hora absolutas. Por ejemplo, si especificas 2020-01-01, la transferencia incluye los objetos modificados por última vez antes del 1 de enero de 2020. Usa el formato de fecha y hora %Y-%m-%dT%H:%M:%S%z.
  • --include-modified-after-absolute incluye los objetos modificados por última vez después de una fecha y hora absolutas. Por ejemplo, si especificas "2020-01-01", la transferencia incluye los objetos modificados por última vez después del 1 de enero de 2020. Usa el formato de fecha y hora %Y-%m-%dT%H:%M:%S%z.
  • --include-modified-before-relative incluye los objetos que se modificaron fuera de una cantidad especificada de tiempo transcurrido. Por ejemplo, si especificas una duración de 10d, se transfieren los objetos modificados por última vez más de 10 días antes de la hora de inicio de la transferencia. Usa el formato de duración absoluta. P.ej., 1m para 1 mes; 1h30m para 1 hora y 30 minutos.
  • --include-modified-after-relative incluye los objetos modificados dentro de una cantidad especificada de tiempo. Por ejemplo, si especificas una duración de 10d, se transfieren los objetos modificados por última vez menos de 10 días antes de la hora de inicio de la transferencia. Usa el formato de duración absoluta. P.ej., 1m para 1 mes; 1h30m para 1 hora y 30 minutos.

Ejemplo (modificado después):

El siguiente comando transfiere solo los objetos modificados el 1 de octubre de 2025 o después de esa fecha.

gcloud transfer jobs create gs://my-source-bucket gs://my-sink-bucket
  --include-modified-after-absolute="2025-10-01T00:00:00Z"

Ejemplo (período):

El siguiente comando transfiere solo los objetos modificados durante el mes de octubre de 2025.

gcloud transfer jobs create gs://my-source-bucket gs://my-sink-bucket
  --include-modified-after-absolute="2025-10-01T00:00:00Z"
  --include-modified-before-absolute="2025-11-01T00:00:00Z"

Ejemplo (tiempo transcurrido):

El siguiente comando transfiere solo los objetos modificados en los últimos 7 días.

gcloud transfer jobs create gs://my-source-bucket gs://my-sink-bucket
  --include-modified-after-relative="7d"

REST

Para filtrar por hora de modificación con la API de REST, especifica los campos de filtro basados en el tiempo en el objectConditions de tu transferSpec.

{
  "description": "DESCRIPTION",
  "status": "ENABLED",
  "projectId": "PROJECT_ID",
  "transferSpec": {
    "gcsDataSource": {
      "bucketName": "SOURCE_BUCKET"
    },
    "gcsDataSink": {
      "bucketName": "DESTINATION_BUCKET"
    },
    "objectConditions": {
      "lastModifiedBefore": "DATETIME",
      "lastModifiedSince": "DATETIME",
      "minTimeElapsedSinceLastModification": "DURATION",
      "maxTimeElapsedSinceLastModification": "DURATION",

    }
  }
}

Aquí:

  • lastModifiedBefore incluye los objetos modificados por última vez antes de una fecha y hora absolutas. Por ejemplo, si especificas 2020-01-01, la transferencia incluye los objetos modificados por última vez antes del 1 de enero de 2020. Usa el formato de fecha y hora %Y-%m-%dT%H:%M:%S%z.
  • lastModifiedSince incluye los objetos modificados por última vez después de una fecha y hora absolutas. Por ejemplo, si especificas "2020-01-01", la transferencia incluye los objetos modificados por última vez después del 1 de enero de 2020. Usa el formato de fecha y hora %Y-%m-%dT%H:%M:%S%z.
  • minTimeElapsedSinceLastModification incluye los objetos que se modificaron fuera de una cantidad especificada de tiempo transcurrido. Por ejemplo, si especificas una duración de 10d, se transfieren los objetos modificados por última vez más de 10 días antes de la hora de inicio de la transferencia. Usa el formato de duración absoluta. P.ej., 1m para 1 mes; 1h30m para 1 hora y 30 minutos.
  • maxTimeElapsedSinceLastModification incluye los objetos modificados dentro de una cantidad especificada de tiempo. Por ejemplo, si especificas una duración de 10d, se transfieren los objetos modificados por última vez menos de 10 días antes de la hora de inicio de la transferencia. Usa el formato de duración absoluta. P.ej., 1m para 1 mes; 1h30m para 1 hora y 30 minutos.

Ejemplo (período):

El siguiente cuerpo JSON configura un trabajo para transferir solo los objetos modificados durante octubre de 2025.

{
  "description": "Transfer October 2025 data",
  "status": "ENABLED",
  "projectId": "PROJECT_ID",
  "transferSpec": {
    "gcsDataSource": {
      "bucketName": "SOURCE_BUCKET"
    },
    "gcsDataSink": {
      "bucketName": "DESTINATION_BUCKET"
    },
    "objectConditions": {
      "lastModifiedSince": "2025-10-01T00:00:00Z",
      "lastModifiedBefore": "2025-11-01T00:00:00Z"
    }
  }
}

Para obtener más información, consulta la ObjectConditions.

Interacción con otros filtros

Cuando usas varios filtros, el Servicio de transferencia de almacenamiento los aplica en el siguiente orden:

  1. Incluir prefijos: Reduce los objetos que se deben tener en cuenta.

  2. Condiciones de objeto (hora de última modificación): Filtra los objetos que coinciden con el prefijo de inclusión.

  3. Excluir prefijos: Quita objetos del resultado.

Obtén más información sobre filtrar por prefijo.

Ejemplo: Combinación de todos los filtros

Imagina que tienes la siguiente configuración de filtro:

  • include_prefix: "logs/"
  • lastModifiedSince: "2025-10-31T00:00:00Z"
  • exclude_prefix: "logs/temp/"

Resultado: El servicio ejecutará la transferencia de la siguiente manera:

  1. Primero, considera solo los objetos del directorio logs/.
  2. Luego, busca los objetos que se modificaron el 31 de octubre de 2025 o después de esa fecha.
  3. Por último, quita de esa lista los objetos que se encuentran en el directorio logs/temp/.