ソース オブジェクトを更新日時でフィルタする

最終更新日時に基づいて、転送するオブジェクトをフィルタできます。これにより、変更されたオブジェクトのみを転送できます。

  • 特定の日時の前または後
  • 転送ジョブを基準とした指定した経過時間の前後

この機能は、増分転送の設定や、時間範囲外のオブジェクトのスキップに役立ちます。

最終更新日時によるフィルタリングは、URL リストを除くすべてのソースからの転送でサポートされています。

時間ベースのフィルタ

フィルタリングは、last modified sincelast modified beforeminimum time elapsed since modifiedmaximum time elapsed since modified の値で定義されます。フィルタは個別に、または組み合わせて使用して、時間枠を作成できます。

フィールド 説明
最終更新日が指定日以降 このタイムスタンプ以降に最終更新されたオブジェクトを転送に含めます。
最終更新日が指定日の前 このタイムスタンプのに最後に変更されたオブジェクトを転送に含めます。
変更されてからの最小経過時間 この期間より前に最後に変更された転送内のオブジェクトを含めます。たとえば、このフィルタを使用して、1 か月以上前に変更されたオブジェクトのみを含めることができます。「最終更新日時」のないオブジェクトも転送されます。
変更されてからの最大経過時間 この期間内に最後に変更された転送内のオブジェクトが含まれます。たとえば、このフィルタを使用して、過去 7 日間に変更されたオブジェクトのみを含めることができます。「最終更新日時」のないオブジェクトも転送されます。

時間ベースのフィルタを指定する

転送ジョブの作成時または更新時に、変更時刻フィルタを指定できます。

タイムスタンプは UTC で、RFC 3339 文字列(例: 2025-10-31T10:00:00Z)としてフォーマットする必要があります。期間は絶対期間形式(1 か月は 1m、1 時間 30 分は 1h30m など)を使用します。

Google Cloud コンソール

Google Cloud コンソールで時間フィルタを指定するには:

  1. [転送ジョブを作成] ページまたは [転送ジョブを編集] ページに移動します。
  2. [転送するデータの選択] セクションで、[フィルタの種類] として [日付と時刻] を選択します。
  3. [絶対期間] の場合は日付と時刻を、[相対期間] の場合は期間を入力します。複数のフィルタを同時に指定できます。

gcloud CLI

gcloud CLI を使用して変更時刻でフィルタするには、時間ベースのフィルタ フラグを gcloud transfer jobs create コマンドまたは 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"

ここで

  • --include-modified-before-absolute には、絶対日時より前に最後に変更されたオブジェクトが含まれます。たとえば、2020-01-01 を指定すると、2020 年 1 月 1 日より前に最後に変更されたオブジェクトが転送に含まれます。%Y-%m-%dT%H:%M:%S%z の日時形式を使用します。
  • --include-modified-after-absolute には、絶対日時以降に最後に変更されたオブジェクトが含まれます。たとえば、「2020-01-01」を指定すると、2020 年 1 月 1 日以降に最後に変更されたオブジェクトが転送に含まれます。%Y-%m-%dT%H:%M:%S%z の日時形式を使用します。
  • --include-modified-before-relative には、指定した経過時間外に変更されたオブジェクトが含まれます。たとえば、期間を 10d に指定すると、転送開始時刻の 10 日以上前に最後に変更されたオブジェクトが転送されます。絶対期間形式を使用します。例: 1 か月間は 1m、1 時間 30 分間は 1h30m
  • --include-modified-after-relative には、指定された期間内に変更されたオブジェクトが含まれます。たとえば、期間を 10d に指定すると、転送開始時刻の 10 日前に最後に変更されたオブジェクトが転送されます。絶対期間形式を使用します。例: 1 か月間は 1m、1 時間 30 分間は 1h30m

例(指定日より後に変更):

次のコマンドは、2025 年 10 月 1 日以降に変更されたオブジェクトのみを転送します。

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

例(時間枠):

次のコマンドは、2025 年 10 月のに変更されたオブジェクトのみを転送します。

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"

例(経過時間):

次のコマンドは、過去 7 日間に変更されたオブジェクトのみを転送します。

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

REST

REST API を使用して変更時刻でフィルタするには、transferSpecobjectConditions で時間ベースのフィルタ フィールドを指定します。

{
  "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",

    }
  }
}

ここで

  • lastModifiedBefore には、絶対日時より前に最後に変更されたオブジェクトが含まれます。たとえば、2020-01-01 を指定すると、2020 年 1 月 1 日より前に最後に変更されたオブジェクトが転送に含まれます。%Y-%m-%dT%H:%M:%S%z の日時形式を使用します。
  • lastModifiedSince には、絶対日時以降に最後に変更されたオブジェクトが含まれます。たとえば、「2020-01-01」を指定すると、2020 年 1 月 1 日以降に最後に変更されたオブジェクトが転送に含まれます。%Y-%m-%dT%H:%M:%S%z の日時形式を使用します。
  • minTimeElapsedSinceLastModification には、指定した経過時間外に変更されたオブジェクトが含まれます。たとえば、期間を 10d に指定すると、転送開始時刻の 10 日以上前に最後に変更されたオブジェクトが転送されます。絶対期間形式を使用します。例: 1 か月間は 1m、1 時間 30 分間は 1h30m
  • maxTimeElapsedSinceLastModification には、指定された期間内に変更されたオブジェクトが含まれます。たとえば、期間を 10d に指定すると、転送開始時刻の 10 日前に最後に変更されたオブジェクトが転送されます。絶対期間形式を使用します。例: 1 か月間は 1m、1 時間 30 分間は 1h30m

例(時間枠):

次の JSON 本文は、2025 年 10 月に変更されたオブジェクトのみを転送するようにジョブを構成します。

{
  "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"
    }
  }
}

詳細については、ObjectConditions リファレンスをご覧ください。

他のフィルタとの相互作用

複数のフィルタを使用する場合、Storage Transfer Service は次の順序でフィルタを適用します。

  1. 接頭辞を含める: 考慮するオブジェクトを絞り込みます。

  2. オブジェクト条件(最終更新時間): 包含接頭辞に一致するオブジェクトをフィルタします。

  3. 接頭辞を除外: 結果からオブジェクトを削除します。

詳しくは、接頭辞でフィルタするをご覧ください。

例: すべてのフィルタを組み合わせる

次のようなフィルタ構成があるとします。

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

結果: サービスは次のように転送を実行します。

  1. まず、logs/ ディレクトリ内のオブジェクトのみが考慮されます。
  2. 次に、2025 年 10 月 31 日以降に変更されたオブジェクトを探します。
  3. 最後に、logs/temp/ ディレクトリにあるオブジェクトをリストから削除します。