É possível filtrar os objetos a serem transferidos com base na hora da última modificação. Isso permite transferir apenas objetos modificados:
- Antes ou depois de uma data e hora específicas
- Antes ou depois de um período especificado decorrido em relação ao trabalho de transferência
Esse recurso é útil para configurar transferências incrementais ou para ignorar objetos que estão fora de um intervalo de tempo.
A filtragem por horário da última modificação é compatível com transferências de todas as fontes, exceto listas de URLs.
Filtros baseados em tempo
A filtragem é definida com valores last modified since, last modified before, minimum time elapsed since modified e maximum time elapsed since modified. É possível usar os filtros individualmente ou juntos para criar um período.
| Campo | Descrição |
| Última modificação desde | Inclui objetos na transferência que foram modificados pela última vez na ou após esse carimbo de data/hora. |
| Última modificação antes de | Inclui objetos na transferência que foram modificados pela última vez antes desse carimbo de data/hora. |
| Tempo mínimo decorrido desde a modificação | Inclui objetos na transferência que foram modificados pela última vez há pelo menos esse tempo. Por exemplo, esse filtro pode ser usado para incluir apenas objetos modificados há pelo menos um mês. Objetos sem um "horário da última modificação" também são transferidos. |
| Tempo máximo decorrido desde a modificação | Inclui objetos na transferência que foram modificados pela última vez há no máximo esse período. Por exemplo, esse filtro pode ser usado para incluir apenas objetos que foram modificados nos últimos sete dias. Objetos sem um "horário da última modificação" também são transferidos. |
Especificar um filtro baseado em tempo
É possível especificar filtros de tempo de modificação ao criar ou atualizar um job de transferência.
Os carimbos de data/hora precisam estar em UTC e formatados como uma string RFC 3339 (por exemplo, 2025-10-31T10:00:00Z). As durações usam o formato de duração absoluta (por exemplo, 1m para 1 mês; 1h30m para 1 hora e 30 minutos).
Console do Google Cloud
Para especificar um filtro de tempo no console do Google Cloud:
- Acesse a página Criar job de transferência ou Editar job de transferência.
- Na seção Escolher dados para transferir, selecione Datas e horários como Tipo de filtro.
- Insira uma data e hora para o Intervalo de tempo absoluto ou uma duração para o Intervalo de tempo relativo. Vários filtros podem ser especificados juntos.
CLI da gcloud
Para filtrar por hora de modificação usando a CLI gcloud, transmita as flags de filtro com base em tempo para o comando gcloud transfer jobs create ou 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"
Em que:
--include-modified-before-absoluteinclui objetos modificados pela última vez antes de uma data/hora absoluta. Por exemplo, ao especificar2020-01-01, a transferência inclui objetos modificados pela última vez antes de 1º de janeiro de 2020. Use o formato de data e hora%Y-%m-%dT%H:%M:%S%z.--include-modified-after-absoluteinclui objetos modificados por último após uma data/hora absoluta. Por exemplo, ao especificar "2020-01-01", a transferência inclui objetos modificados pela última vez após 1º de janeiro de 2020. Use o formato de data e hora%Y-%m-%dT%H:%M:%S%z.--include-modified-before-relativeinclui objetos que foram modificados fora de um período especificado de tempo decorrido. Por exemplo, especificar uma duração de10dtransfere objetos modificados pela última vez mais de 10 dias antes do horário de início da transferência. Use o formato de duração absoluta. Por exemplo,1mpor 1 mês;1h30mpor 1 hora e 30 minutos.--include-modified-after-relativeinclui objetos modificados em um período especificado. Por exemplo, especificar uma duração de10dtransfere objetos modificados há menos de 10 dias antes do horário de início da transferência. Use o formato de duração absoluta. Por exemplo,1mpor 1 mês;1h30mpor 1 hora e 30 minutos.
Exemplo (modificado depois de):
O comando a seguir transfere apenas objetos modificados a partir de 1º de outubro de 2025.
gcloud transfer jobs create gs://my-source-bucket gs://my-sink-bucket
--include-modified-after-absolute="2025-10-01T00:00:00Z"
Exemplo (período):
O comando a seguir transfere apenas os objetos modificados durante o mês de outubro 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"
Exemplo (tempo decorrido):
O comando a seguir transfere apenas objetos modificados nos últimos sete dias.
gcloud transfer jobs create gs://my-source-bucket gs://my-sink-bucket
--include-modified-after-relative="7d"
REST
Para filtrar por hora de modificação usando a API REST, especifique os campos de filtro com base em tempo no objectConditions do seu 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",
}
}
}
Em que:
lastModifiedBeforeinclui objetos modificados pela última vez antes de uma data/hora absoluta. Por exemplo, ao especificar2020-01-01, a transferência inclui objetos modificados pela última vez antes de 1º de janeiro de 2020. Use o formato de data e hora%Y-%m-%dT%H:%M:%S%z.lastModifiedSinceinclui objetos modificados por último após uma data/hora absoluta. Por exemplo, ao especificar "2020-01-01", a transferência inclui objetos modificados pela última vez após 1º de janeiro de 2020. Use o formato de data e hora%Y-%m-%dT%H:%M:%S%z.minTimeElapsedSinceLastModificationinclui objetos que foram modificados fora de um período especificado de tempo decorrido. Por exemplo, especificar uma duração de10dtransfere objetos modificados pela última vez mais de 10 dias antes do horário de início da transferência. Use o formato de duração absoluta. Por exemplo,1mpor 1 mês;1h30mpor 1 hora e 30 minutos.maxTimeElapsedSinceLastModificationinclui objetos modificados em um período especificado. Por exemplo, especificar uma duração de10dtransfere objetos modificados há menos de 10 dias antes do horário de início da transferência. Use o formato de duração absoluta. Por exemplo,1mpor 1 mês;1h30mpor 1 hora e 30 minutos.
Exemplo (período):
O corpo JSON a seguir configura um job para transferir apenas objetos modificados durante outubro 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 mais informações, consulte a referência ObjectConditions.
Interação com outros filtros
Quando você usa vários filtros, o Serviço de transferência do Cloud Storage os aplica na seguinte ordem:
Incluir prefixos: restringe os objetos a serem considerados.
Condições de objeto (horário da última modificação): filtra os objetos que corresponderam ao prefixo de inclusão.
Excluir prefixos: remove objetos do resultado.
Saiba mais sobre filtrar por prefixo.
Exemplo: combinar todos os filtros
Imagine que você tenha a seguinte configuração de filtro:
- include_prefix: "logs/"
- lastModifiedSince: "2025-10-31T00:00:00Z"
- exclude_prefix: "logs/temp/"
Resultado:o serviço vai executar a transferência da seguinte maneira:
- Primeiro, ele considera apenas objetos no diretório
logs/. - Em seguida, ele procura objetos que foram modificados em 31 de outubro de 2025 ou depois dessa data.
- Por fim, ele remove da lista todos os objetos que estão no diretório
logs/temp/.