Filtrare gli oggetti di origine in base all'ora di modifica

Puoi filtrare gli oggetti da trasferire in base all'ora dell'ultima modifica. In questo modo puoi trasferire solo gli oggetti modificati:

  • Prima o dopo una data e un'ora specifiche
  • Prima o dopo un periodo di tempo trascorso specificato rispetto al job di trasferimento

Questa funzionalità è utile per configurare trasferimenti incrementali o per ignorare gli oggetti che non rientrano in un intervallo di tempo.

Il filtro per ora dell'ultima modifica è supportato per i trasferimenti da tutte le origini ad eccezione degli elenchi di URL.

Filtri basati sul tempo

Il filtro è definito con i valori last modified since, last modified before, minimum time elapsed since modified e maximum time elapsed since modified. Puoi utilizzare i filtri singolarmente o insieme per creare un intervallo di tempo.

Campo Descrizione
Ultima modifica dal giorno Include gli oggetti nel trasferimento che sono stati modificati l'ultima volta in questa data e ora o successivamente.
Ultima modifica prima del giorno Include gli oggetti nel trasferimento che sono stati modificati l'ultima volta prima di questo timestamp.
Tempo minimo trascorso dall'ultima modifica Include gli oggetti nel trasferimento che sono stati modificati l'ultima volta almeno questo periodo di tempo fa. Ad esempio, questo filtro può essere utilizzato per includere solo gli oggetti modificati almeno un mese fa. Vengono trasferiti anche gli oggetti senza "ora dell'ultima modifica".
Tempo massimo trascorso dall'ultima modifica Include gli oggetti nel trasferimento che sono stati modificati l'ultima volta non più di questo periodo di tempo fa. Ad esempio, questo filtro può essere utilizzato per includere solo gli oggetti modificati negli ultimi 7 giorni. Vengono trasferiti anche gli oggetti senza "ora dell'ultima modifica".

Specificare un filtro basato sul tempo

Puoi specificare i filtri dell'ora di modifica quando crei o aggiorni un job di trasferimento.

I timestamp devono essere in formato UTC e formattati come stringa RFC 3339 (ad es. 2025-10-31T10:00:00Z). Le durate utilizzano il formato di durata assoluta (ad es. 1m per 1 mese; 1h30m per 1 ora e 30 minuti).

Console Google Cloud

Per specificare un filtro temporale nella console Google Cloud:

  1. Vai alla pagina Crea job di trasferimento o Modifica job di trasferimento.
  2. Nella sezione Scegli i dati da trasferire, seleziona Date e ore come Tipo di filtro.
  3. Inserisci una data e un'ora per l'intervallo di tempo assoluto o una durata per l'intervallo di tempo relativo. È possibile specificare più filtri contemporaneamente.

gcloud CLI

Per filtrare in base all'ora di modifica utilizzando gcloud CLI, trasmetti i flag di filtro basati sul tempo 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"

Dove:

  • --include-modified-before-absolute include gli oggetti modificati per ultimi prima di una data/ora assoluta. Ad esempio, se specifichi 2020-01-01, il trasferimento include gli oggetti modificati l'ultima volta prima del 1° gennaio 2020. Utilizza il formato %Y-%m-%dT%H:%M:%S%z per data e ora.
  • --include-modified-after-absolute include gli oggetti modificati l'ultima volta dopo una data/ora assoluta. Ad esempio, se specifichi "2020-01-01", il trasferimento include gli oggetti modificati l'ultima volta dopo il 1° gennaio 2020. Utilizza il formato %Y-%m-%dT%H:%M:%S%z per data e ora.
  • --include-modified-before-relative include gli oggetti modificati al di fuori di un determinato periodo di tempo trascorso. Ad esempio, specificando una durata di 10d vengono trasferiti gli oggetti modificati l'ultima volta più di 10 giorni prima dell'ora di inizio del trasferimento. Utilizza il formato della durata assoluta. Ad esempio, 1m per 1 mese; 1h30m per 1 ora e 30 minuti.
  • --include-modified-after-relative include gli oggetti modificati entro un periodo di tempo specificato. Ad esempio, se specifichi una durata di 10d, vengono trasferiti gli oggetti modificati l'ultima volta meno di 10 giorni prima dell'ora di inizio del trasferimento. Utilizza il formato della durata assoluta. Ad esempio, 1m per 1 mese; 1h30m per 1 ora e 30 minuti.

Esempio (modificato dopo):

Il seguente comando trasferisce solo gli oggetti modificati a partire dal 1° ottobre 2025.

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

Esempio (intervallo di tempo):

Il seguente comando trasferisce solo gli oggetti modificati durante il mese di ottobre 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"

Esempio (tempo trascorso):

Il seguente comando trasferisce solo gli oggetti modificati negli ultimi 7 giorni.

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

REST

Per filtrare in base all'ora di modifica utilizzando l'API REST, specifica i campi di filtro basati sul tempo in objectConditions di 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",

    }
  }
}

Dove:

  • lastModifiedBefore include gli oggetti modificati per ultimi prima di una data/ora assoluta. Ad esempio, se specifichi 2020-01-01, il trasferimento include gli oggetti modificati l'ultima volta prima del 1° gennaio 2020. Utilizza il formato %Y-%m-%dT%H:%M:%S%z per data e ora.
  • lastModifiedSince include gli oggetti modificati l'ultima volta dopo una data/ora assoluta. Ad esempio, se specifichi "2020-01-01", il trasferimento include gli oggetti modificati l'ultima volta dopo il 1° gennaio 2020. Utilizza il formato %Y-%m-%dT%H:%M:%S%z per data e ora.
  • minTimeElapsedSinceLastModification include gli oggetti modificati al di fuori di un determinato periodo di tempo trascorso. Ad esempio, specificando una durata di 10d vengono trasferiti gli oggetti modificati l'ultima volta più di 10 giorni prima dell'ora di inizio del trasferimento. Utilizza il formato della durata assoluta. Ad esempio, 1m per 1 mese; 1h30m per 1 ora e 30 minuti.
  • maxTimeElapsedSinceLastModification include gli oggetti modificati entro un periodo di tempo specificato. Ad esempio, se specifichi una durata di 10d, vengono trasferiti gli oggetti modificati l'ultima volta meno di 10 giorni prima dell'ora di inizio del trasferimento. Utilizza il formato della durata assoluta. Ad esempio, 1m per 1 mese; 1h30m per 1 ora e 30 minuti.

Esempio (intervallo di tempo):

Il seguente corpo JSON configura un job per trasferire solo gli oggetti modificati nel mese di ottobre 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"
    }
  }
}

Per ulteriori informazioni, consulta il riferimento ObjectConditions.

Interazione con altri filtri

Quando utilizzi più filtri, Storage Transfer Service li applica nel seguente ordine:

  1. Includi prefissi: limita gli oggetti da prendere in considerazione.

  2. Condizioni oggetto (pattern glob e ora dell'ultima modifica): filtra gli oggetti che corrispondono al prefisso di inclusione. Un oggetto deve corrispondere sia al filtro glob sia al filtro dell'ultima modifica per essere incluso nel risultato.

  3. Escludi prefissi: rimuove gli oggetti dal risultato.

Scopri di più su filtri per prefisso e filtri con pattern glob.

Esempio: combinazione di tutti i filtri

Immagina di avere la seguente configurazione del filtro per un trasferimento da AWS S3 o Azure:

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

Risultato:il servizio eseguirà il trasferimento nel seguente modo:

  1. Innanzitutto, prende in considerazione solo gli oggetti nella directory logs/.
  2. Successivamente, cerca gli oggetti che terminano con .log E che sono stati modificati il giorno 31 ottobre 2025 o dopo questa data.
  3. Infine, rimuove dall'elenco tutti gli oggetti presenti nella directory logs/temp/.