프리픽스별 필터링

이 페이지에서는 포함 및 제외 프리픽스를 사용하여 경로를 전송에 포함하거나 전송에서 제외하는 방법을 보여줍니다.

전송할 특정 객체의 매니페스트를 만드는 방법은 매니페스트를 사용하여 특정 파일 또는 객체 전송을 참조하세요.

개요

Storage Transfer Service는 프리픽스를 사용하여 데이터 소스에 포함하거나 데이터 소스에서 제외할 파일을 선택할 수 있습니다. 포함 프리픽스, 제외 프리픽스 또는 둘 다 모두 사용할 수 있습니다.

Amazon S3, Microsoft Azure Blob Storage, Cloud Storage 데이터 소스에서 프리픽스별 필터링이 지원됩니다.

  • 프리픽스에 선행 슬래시를 포함하지 마세요. 예를 들어 다음 버킷 경로 s3://my-aws-bucket/logs/y=2015/requests.gz에서 requests.gz 객체를 전송에 포함하려면 포함 프리픽스를 logs/y=2015/requests.gz로 지정합니다.

  • 포함 및 제외 프리픽스에 부분 일치가 지원됩니다. 예를 들어 pathpath_1/path_2/와 일치합니다.

  • 와일드 카드는 지원되지 않습니다.

  • 폴더를 소스 위치로 지정한 경우 프리픽스 필터는 해당 폴더를 기준으로 합니다. 예를 들어 소스가 gs://my-test-bucket/path/인 경우 file의 포함 필터는 gs://my-test-bucket/path/file로 시작하는 모든 파일을 포함합니다.

  • 각 포함 프리픽스에는 객체 네임스페이스의 고유한 부분이 포함되어야 합니다. 포함 프리픽스는 다른 포함 프리픽스의 프리픽스가 될 수 없습니다. 예를 들어 path_1path_1/subpath_2 모두 포함 프리픽스로 지정할 수 없습니다.

  • 포함 프리픽스와 제외 프리픽스를 함께 사용하는 경우에는 제외 프리픽스가 포함 프리픽스 중 하나의 값으로 시작해야 합니다. 예를 들어 a를 포함 프리픽스로 지정하면 유효한 제외 프리픽스는 a/b, aaa, abc입니다.

  • 제외 프리픽스만 사용하는 경우에는 사용하는 프리픽스에 제한사항이 없습니다.

  • 프리픽스를 지정하지 않으면 버킷의 모든 객체가 전송됩니다.

더 일반적인 프리픽스 정보는 Amazon S3 문서의 프리픽스와 구분 기호를 사용하여 계층적 구조로 키 나열 또는 Cloud Storage의 객체 list 메서드를 참조하세요.

프리픽스 지정 방법

Cloud 콘솔

Cloud 콘솔을 사용하여 포함 및 제외 프리픽스를 지정하려면 새 전송을 만들 때 또는 기존 전송을 업데이트할 때 값을 입력합니다.

gcloud CLI

gcloud CLI를 사용하여 포함 및 제외 프리픽스를 지정하려면 gcloud transfer jobs create 명령어 또는 gcloud transfer jobs update 명령어에 --include-prefixes--exclude-prefixes 플래그를 전달합니다.

gcloud transfer jobs create SOURCE DESTINATION \
  --include-prefixes="path_1/,path_2/" --exclude-prefixes="path_1/subpath_2/"

여러 프리픽스를 쉼표로 구분하고 쉼표 뒤에 공백을 생략합니다. 예를 들면 --include-prefixes=foo,bar입니다.

REST

REST API를 사용하여 포함 및 제외 프리픽스를 지정하려면 includePrefixes[]excludePrefixes[] 필드를 사용합니다.

{
    "description": "YOUR DESCRIPTION",
    "status": "ENABLED",
    "projectId": "PROJECT_ID",
    "schedule": {
        "scheduleStartDate": {
            "day": 1,
            "month": 1,
            "year": 2015
        },
        "startTimeOfDay": {
            "hours": 1,
            "minutes": 1
        }
    },
    "transferSpec": {
        "gcsDataSource": {
            "bucketName": "GCS_SOURCE_NAME"
        },
        "gcsDataSink": {
            "bucketName": "GCS_SINK_NAME"
        },
        "transferOptions": {
            "deleteObjectsFromSourceAfterTransfer": true
        },
        "objectConditions": {
            "includePrefixes": [
                "path_1/",
                "path_2/"
            ],
            "excludePrefixes": [
                "path_1/subpath_2/object_5"
            ]
        }
    }
}

자세한 내용은 ObjectConditions 참조를 확인하세요.

객체 및 경로 예시

이 문서의 예시에서는 다음과 같은 샘플 객체 및 경로를 사용합니다.

xx://bucketname/object_1
xx://bucketname/object_2
xx://bucketname/path_1/object_3
xx://bucketname/path_2/object_4
xx://bucketname/path_1/subpath_1/object_5
xx://bucketname/path_1/subpath_2/object_6
xx://bucketname/path_2/subpath_3/object_7
xx://bucketname/path_2/subpath_4/object_8

포함 프리픽스

전송을 만들 때 포함 프리픽스를 사용하여 Storage Transfer Service가 나열된 경로에서 전송 객체를 고려하고 해당 경로에 없는 객체를 무시하도록 합니다.

예를 들어 path_1/ 아래에 객체를 포함하려면 다음 프리픽스를 사용합니다.

path_1/

여기에는 path_1/, path_1/subpath_1, path_1/subpath_2/ 바로 아래에 있는 객체가 포함됩니다. 전송에 포함되는 객체는 다음과 같습니다.

xx://bucketname/object_1
xx://bucketname/object_2
xx://bucketname/path_1/object_3
xx://bucketname/path_2/object_4
xx://bucketname/path_1/subpath_1/object_5
xx://bucketname/path_1/subpath_2/object_6
xx://bucketname/path_2/subpath_3/object_7
xx://bucketname/path_2/subpath_4/object_8

포함할 경로를 여러 개 지정할 수 있습니다. 예를 들어 다음을 전달할 수 있습니다.

path_1/subpath_2/
path_1/subpath_3/

이 경우 전송에 다음 객체가 포함됩니다.

xx://bucketname/object_1
xx://bucketname/object_2
xx://bucketname/path_1/object_3
xx://bucketname/path_2/object_4
xx://bucketname/path_1/subpath_1/object_5
xx://bucketname/path_1/subpath_2/object_6
xx://bucketname/path_2/subpath_3/object_7
xx://bucketname/path_2/subpath_4/object_8

부분 일치가 지원됩니다. 예를 들어 path를 포함 프리픽스 값으로 지정하면 다음 객체와 일치합니다.

xx://bucketname/object_1
xx://bucketname/object_2
xx://bucketname/path_1/object_3
xx://bucketname/path_2/object_4
xx://bucketname/path_1/subpath_1/object_5
xx://bucketname/path_1/subpath_2/object_6
xx://bucketname/path_2/subpath_3/object_7
xx://bucketname/path_2/subpath_4/object_8

포함 프리픽스를 사용하면 특별히 포함하지 않은 경로는 Cloud Storage 대상 버킷으로 전송되지 않습니다.

제외 프리픽스

전송을 만들 때 제외 프리픽스를 사용하면 Storage Transfer Service가 나열된 전송 경로를 무시하도록 지시할 수 있습니다.

path_1/ 아래에 있는 객체를 제외하려면 다음 프리픽스를 전달하세요.

path_1/

path_1/, path_1/subpath_1/, path_1/subpath_2/ 아래의 객체는 제외됩니다. 이 경우 다음 객체가 전송에 포함됩니다.

xx://bucketname/object_1
xx://bucketname/object_2
xx://bucketname/path_1/object_3
xx://bucketname/path_2/object_4
xx://bucketname/path_1/subpath_1/object_5
xx://bucketname/path_1/subpath_2/object_6
xx://bucketname/path_2/subpath_3/object_7
xx://bucketname/path_2/subpath_4/object_8

제외할 경로를 여러 개 지정할 수 있습니다. 예를 들어 다음을 전달할 수 있습니다.

path_1/subpath_2/
path_2/subpath_3/

이 경우 전송에 다음 객체가 포함됩니다.

xx://bucketname/object_1
xx://bucketname/object_2
xx://bucketname/path_1/object_3
xx://bucketname/path_2/object_4
xx://bucketname/path_1/subpath_1/object_5
xx://bucketname/path_1/subpath_2/object_6
xx://bucketname/path_2/subpath_3/object_7
xx://bucketname/path_2/subpath_4/object_8

동시에 경로 포함 및 제외

제외 프리픽스와 포함 프리픽스를 함께 적용할 수 있습니다. 이 경우 제외 프리픽스는 전송에 포함된 포함 프리픽스를 제한합니다.

두 가지 유형의 프리픽스를 모두 지정하면 각 제외 프리픽스가 포함 프리픽스에 지정된 경로로 시작해야 합니다.

예를 들어 path_1/ 아래에 객체를 포함하고 subpath_1/ 아래의 객체를 제외하려면 다음을 전달합니다.

include: path_1/
exclude: path_1/subpath_1/

이 경우 전송에 다음 객체가 포함됩니다.

xx://bucketname/object_1
xx://bucketname/object_2
xx://bucketname/path_1/object_3
xx://bucketname/path_2/object_4
xx://bucketname/path_1/subpath_1/object_5
xx://bucketname/path_1/subpath_2/object_6
xx://bucketname/path_2/subpath_3/object_7
xx://bucketname/path_2/subpath_4/object_8

path_1/subpath_1/ 또는 path_2/subpath_3/의 항목을 제외하고 path_1/path_2/ 아래의 모든 객체를 포함하려면 다음을 전달합니다.

include: path_1/
         path_2/
exclude: path_1/subpath_1/
         path_2/subpath_3/

이 경우 전송에 다음 객체가 포함됩니다.

xx://bucketname/object_1
xx://bucketname/object_2
xx://bucketname/path_1/object_3
xx://bucketname/path_2/object_4
xx://bucketname/path_1/subpath_1/object_5
xx://bucketname/path_1/subpath_2/object_6
xx://bucketname/path_2/subpath_3/object_7
xx://bucketname/path_2/subpath_4/object_8

잘못된 경로 포함 또는 제외 예시

다음 섹션에는 포함 또는 제외 경로 사용 시 피해야 할 예시와 올바르게 작동하도록 수정하는 방법이 나와 있습니다.

다른 포함 프리픽스에 사용되는 경로 포함

각 포함 프리픽스는 객체 네임스페이스의 고유한 부분을 지정해야 합니다. 다음 예시는 두 번째 값이 이미 첫 번째 값의 네임스페이스에 포함되어 있으므로 잘못되었습니다.

include: path_1/
         path_1/subpath_1

이 예시에서는 두 번째 포함 프리픽스 path_1/subpath_1이 이미 path_1/ 내에 포함되어 있으므로 포함 프리픽스 값이 유효하지 않습니다. 이 문제를 해결하려면 값 중 하나를 삭제합니다.

포함 프리픽스로 시작하지 않는 제외 프리픽스 사용

각 제외 프리픽스는 지정된 포함 프리픽스 값으로 시작해야 합니다. 다음 예시는 제외 프리픽스 값이 지정된 포함 프리픽스 값으로 시작하지 않으므로 잘못되었습니다.

include: path_1/
         path_2/
exclude: subpath_1
         subpath_4

이 예시에서 제외 프리픽스 값은 포함 프리픽스 값 중 하나로 시작하지 않으므로 유효하지 않습니다. 이 문제를 해결하려면 제외 프리픽스에 포함 프리픽스로 나열된 전체 경로가 포함되어 있는지 확인합니다.

include: path_1/
         path_2/
exclude: path_1/subpath_1/
         path_2/subpath_4/

다음 단계