Storage Transfer Service 작업은 * 및 ?과 같은 와일드 카드 문자가 포함된 검색 문자열을 지원하여 파일 이름 또는 경로를 일치시킵니다. 이러한 검색 문자열을 glob 패턴이라고 합니다.
glob 패턴을 사용하여 전송에 포함할 소스 객체를 지정할 수 있습니다. 이렇게 하면 접두사로만 필터링하는 것보다 더 세밀하게 제어할 수 있습니다.
AWS S3 및 Azure에서의 전송에는 glob 패턴을 사용한 필터링이 지원됩니다.
글로브 구문
글로브 패턴은 다음 구문을 사용하여 객체 경로를 일치시킵니다.
| 구문 | 설명 |
|---|---|
? |
/을 제외한 모든 단일 문자와 일치합니다. |
* |
/를 제외한 0개 이상의 문자와 일치합니다. |
** |
/를 포함한 0개 이상의 문자와 일치합니다. |
[abc]
|
문자 (예: a, b, c) 중 하나와 정확히 일치합니다. |
[a-z]
|
포함된 범위(예: a~z)의 문자와 정확히 일치합니다. |
[!abc] 또는 [^abc]
|
a, b 또는 c가 아닌 문자와 정확히 일치합니다. |
{abc,xyz}
|
문자열 중 하나 (예: abc 또는 xyz)와 일치합니다. 슬래시 (/) 또는 별표 두 개 (**)를 포함할 수 없습니다. |
\?
|
백슬래시 뒤에 오는 리터럴 문자와 일치합니다(예: \?은 리터럴 ?와 일치). |
예시 패턴
december 디렉터리의 모든 .log 파일과 일치합니다.
logs_by_year/**/december/*.log
. (점) 또는 _ (밑줄)로 시작하지 않는 data_analytics/ 디렉터리의 모든 파일을 전송합니다.
data_analytics/[!._]*
이전 예시를 재귀적으로 만들려면 다음을 실행하세요.
data_analytics/**/[!._]*
정확히 두 개의 특정 디렉터리에서 모든 PDF 파일을 전송합니다.
quarterly_reports/2025/{q1-final,q4-final}/*.pdf
glob 패턴 지정
전송 작업을 만들거나 업데이트할 때 glob 패턴을 지정할 수 있습니다.
gcloud CLI
gcloud CLI를 사용하여 glob 패턴으로 필터링하려면 gcloud transfer jobs create 또는 gcloud transfer jobs update 명령어에 --match-glob 플래그를 전달합니다.
gcloud transfer jobs create SOURCE DESTINATION \
--match-glob="GLOB_PATTERN"
예:
다음 명령어는 december 디렉터리에서 .log 파일만 전송하는 작업을 만듭니다.
gcloud transfer jobs create s3://my-source-bucket gs://my-sink-bucket \
--match-glob="logs_by_year/**/december/*.log"
REST
REST API를 사용하여 glob 패턴으로 필터링하려면 transferSpec의 objectConditions에 matchGlob 필드를 지정합니다.
{
"description": "Transfer December logs from all years",
"status": "ENABLED",
"projectId": "PROJECT_ID",
"transferSpec": {
"awsS3DataSource": {
"bucketName": "AWS_SOURCE_NAME",
"awsAccessKey": {
"accessKeyId": "AWS_ACCESS_KEY_ID",
"secretAccessKey": "AWS_SECRET_ACCESS_KEY"
}
},
"gcsDataSink": {
"bucketName": "DESTINATION_BUCKET"
},
"objectConditions": {
"matchGlob": "logs_by_year/**/december/*.log"
}
}
}
자세한 내용은 ObjectConditions 참조를 확인하세요.
Google Cloud 콘솔
글로브 패턴별 필터링은 Google Cloud 콘솔에서 지원되지 않습니다.
다른 필터와의 상호작용
글로브 패턴 필터를 접두사 필터 또는 최종 수정 시간 필터와 함께 사용하는 경우 Storage Transfer Service는 다음 순서로 필터를 적용합니다.
프리픽스 포함: 고려할 객체를 좁힙니다.
객체 조건 (glob 패턴 및 마지막 수정 시간): 포함 프리픽스와 일치하는 객체를 필터링합니다. 결과에 포함되려면 객체가 glob 필터와 마지막 수정 시간 필터 모두와 일치해야 합니다.
접두사 제외: 결과에서 객체를 삭제합니다.
접두사별 필터링 및 마지막 수정 시간별 필터링에 대해 자세히 알아보세요.
포함 프리픽스
glob 패턴은 하나 이상의 포함 프리픽스와 일치하는 객체에만 적용됩니다.
글로브 패턴이 모든 포함 접두사 패턴과 충돌하면 Storage Transfer Service에서 오류를 반환합니다.
예: 유효한 조합
include_prefix:["foo/"]match_glob:"foo/bar/**"결과: 유효함 서비스는 먼저
foo/아래의 객체를 나열한 다음 해당 목록에 glob 패턴을 적용합니다.
예: 유효한 조합
include_prefix:["logs/2024/", "logs/2025/"]match_glob:"**/*.json"결과: 유효함 서비스는
2024및2025디렉터리의 모든 객체를 나열한 다음.json로 끝나는 파일만 전송합니다.
예: 모순
include_prefix:["foo/"]match_glob:"bar/**"결과: 오류
match_glob패턴은include_prefix에서 선택한 객체와 일치할 수 없습니다.
제외 프리픽스
제외 프리픽스 필터는 포함 프리픽스 필터와 glob 패턴 필터 다음에 적용됩니다.
모순 검사가 수행되지 않습니다. 제외 접두사와 일치하는 객체는 glob 패턴과 일치하더라도 전송 목록에서 삭제됩니다.
예시
include_prefix:["logs/"]match_glob:"**/*.log"exclude_prefix:["logs/temp/"]결과: 서비스는
logs/temp/디렉터리에 있는 객체를 제외하고.log로 끝나는logs/아래의 모든 객체를 전송합니다.