您可以根據物件的上次修改時間,篩選要轉移的物件。 這樣一來,您就能只轉移修改過的物件:
- 特定日期和時間之前或之後
- 在轉移作業開始後經過指定時間
這項功能可用於設定增量轉移,或略過時間範圍外的物件。
從網址清單以外的所有來源轉移檔案時,系統都支援依上次修改時間篩選。
依時間篩選
篩選條件是使用 last modified since、last modified before、minimum time elapsed since modified 和 maximum time elapsed since modified 值定義。您可以單獨使用篩選器,也可以合併使用來建立時間範圍。
| 欄位 | 說明 |
| 上次修改時間晚於 | 包括上次修改時間在這個時間戳記之後的轉移物件。 |
| 上次修改時間早於 | 包括上次修改時間早於這個時間戳記的轉移物件。 |
| 自修改後經過的最短時間 | 包括轉移作業中上次修改時間至少是這段時間前的物件。舉例來說,這個篩選器可用於只納入至少一個月前修改的物件。沒有「上次修改時間」的物件也會一併轉移。 |
| 自修改後經過的時間上限 | 包括轉移作業中最後修改時間不超過這段時間的物件。舉例來說,這個篩選器可用於只納入最近 7 天內修改的物件。沒有「上次修改時間」的物件也會一併轉移。 |
指定時間篩選條件
建立或更新轉移作業時,您可以指定修改時間篩選器。
時間戳記必須採用世界標準時間,並以 RFC 3339 字串格式表示 (例如 2025-10-31T10:00:00Z)。時間長度則採用絕對時間長度格式 (例如 1 個月為 1m;1 小時 30 分鐘為 1h30m)。
Google Cloud 控制台
如要在 Google Cloud 控制台中指定時間篩選條件,請按照下列步驟操作:
- 前往「建立移轉工作」或「編輯移轉工作」頁面。
- 在「選擇要轉移的資料」部分,選取「日期和時間」做為「篩選器類型」。
- 輸入「絕對時間範圍」的日期和時間,或是「相對時間範圍」的持續時間。可以同時指定多個篩選器。
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%zdatetime 格式。--include-modified-after-absolute包含上次修改時間晚於絕對日期/時間的物件。舉例來說,如果指定「2020-01-01」,轉移作業就會包含 2020 年 1 月 1 日後修改的物件。請使用%Y-%m-%dT%H:%M:%S%zdatetime 格式。--include-modified-before-relative包含在指定經過時間以外修改的物件。舉例來說,指定轉移期限時,如果轉移開始時間是 10 天前,系統就會轉移上次修改時間超過 10 天的物件。10d請使用絕對時間長度格式。例如: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 依修改時間篩選,請在 objectConditions 的 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",
}
}
}
其中:
lastModifiedBefore包含上次修改時間早於絕對日期/時間的物件。舉例來說,指定2020-01-01會將上次修改日期在 2020 年 1 月 1 日之前的物件納入轉移作業。請使用%Y-%m-%dT%H:%M:%S%zdatetime 格式。lastModifiedSince包含上次修改時間晚於絕對日期/時間的物件。舉例來說,如果指定「2020-01-01」,轉移作業就會包含 2020 年 1 月 1 日後修改的物件。請使用%Y-%m-%dT%H:%M:%S%zdatetime 格式。minTimeElapsedSinceLastModification包含在指定經過時間以外修改的物件。舉例來說,指定轉移期限時,如果轉移開始時間是 10 天前,系統就會轉移上次修改時間超過 10 天的物件。10d請使用絕對時間長度格式。例如: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 移轉服務會依下列順序套用篩選器:
加入前置字串:縮小要考量的物件範圍。
物件條件 (上次修改時間):篩選符合包含前置字串的物件。
排除前置字串:從結果中移除物件。
進一步瞭解如何依前置字串篩選。
範例:合併所有篩選器
假設您有下列篩選器設定:
- include_prefix: "logs/"
- lastModifiedSince: "2025-10-31T00:00:00Z"
- exclude_prefix: "logs/temp/"
結果:服務會執行轉移作業,如下所示:
- 首先,系統只會考量
logs/目錄下的物件。 - 接著,系統會尋找在 2025 年 10 月 31 日當天或之後修改的物件。
- 最後,系統會從該清單中移除目錄中的所有物件。
logs/temp/