마지막 수정 시간을 기준으로 전송할 객체를 필터링할 수 있습니다. 이렇게 하면 수정된 객체만 전송할 수 있습니다.
- 특정 날짜 및 시간 전 또는 후
- 전송 작업과 관련하여 경과된 지정된 시간 전 또는 후
이 기능은 증분 전송을 설정하거나 시간 범위에 속하지 않는 객체를 건너뛰는 데 유용합니다.
마지막 수정 시간을 기준으로 필터링은 URL 목록을 제외한 모든 소스의 전송에서 지원됩니다.
시간 기반 필터
필터링은 last modified since, last modified before, minimum time elapsed since modified, maximum time elapsed since modified 값으로 정의됩니다. 필터를 개별적으로 사용하거나 함께 사용하여 기간을 만들 수 있습니다.
| 필드 | 설명 |
| 다음 날짜 이후에 최종 수정 | 이 타임스탬프 이후에 마지막으로 수정된 객체를 전송에 포함합니다. |
| 다음 날짜 이전에 최종 수정 | 이 타임스탬프 전에 마지막으로 수정된 객체를 전송에 포함합니다. |
| 수정 후 경과된 최소 시간 | 최소한 이 시간 전에 마지막으로 수정된 전송의 객체를 포함합니다. 예를 들어 이 필터를 사용하여 한 달 전에 수정된 객체만 포함할 수 있습니다. '마지막 수정 시간'이 없는 객체도 전송됩니다. |
| 수정 후 경과된 최대 시간 | 이 시간보다 오래되지 않은 마지막 수정 시간이 있는 전송의 객체를 포함합니다. 예를 들어 이 필터를 사용하여 지난 7일 동안 수정된 객체만 포함할 수 있습니다. '마지막 수정 시간'이 없는 객체도 전송됩니다. |
시간 기반 필터 지정
전송 작업을 만들거나 업데이트할 때 수정 시간 필터를 지정할 수 있습니다.
타임스탬프는 UTC로 표시되어야 하며 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%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를 사용하여 수정 시간으로 필터링하려면 transferSpec의 objectConditions에 시간 기반 필터 필드를 지정합니다.
{
"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분간1h30mmaxTimeElapsedSinceLastModification에는 지정된 시간 내에 수정된 객체가 포함됩니다. 예를 들어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는 다음 순서로 적용합니다.
프리픽스 포함: 고려할 객체의 범위를 좁힙니다.
객체 조건 (마지막 수정 시간): 포함 접두사와 일치하는 객체를 필터링합니다.
접두사 제외: 결과에서 객체를 삭제합니다.
프리픽스별 필터링에 대해 자세히 알아보세요.
예: 모든 필터 결합
다음과 같은 필터 구성이 있다고 가정해 보겠습니다.
- include_prefix: "logs/"
- lastModifiedSince: "2025-10-31T00:00:00Z"
- exclude_prefix: "logs/temp/"
결과: 서비스는 다음과 같이 전송을 실행합니다.
- 첫째,
logs/디렉터리 아래의 객체만 고려합니다. - 그런 다음 2025년 10월 31일 이후에 수정된 객체를 찾습니다.
- 마지막으로
logs/temp/디렉터리에 있는 객체를 목록에서 삭제합니다.