전송에서 객체 필터링

이 페이지에서는 includePrefixexcludePrefix를 사용하여 전송에 경로를 포함하거나 제외하는 방법을 보여줍니다. 전송할 특정 객체의 매니페스트를 만드는 방법은 매니페스트를 사용하여 특정 파일 또는 객체 전송을 참조하세요.

프로그래매틱 방식으로 전송을 만들includePrefixexcludePrefix를 사용하여 Storage Transfer Service가 작동하는 객체를 제한할 수 있습니다. includePrefixexcludePrefix는 전송을 만들 때 TransferSpec에서 지정할 수 있는 선택 필드입니다. includePrefix는 전송에 포함할 특정 경로를 지정하고 excludePrefix는 제외할 특정 경로를 지정합니다.

경로에 전송할 객체와 전송하지 않을 객체가 모두 포함된 경우 includePrefixexcludePrefix를 함께 사용하여 전송할 객체를 지정할 수 있습니다.

객체 및 경로 예시

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

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

경로 포함

전송을 만들 때 includePrefix를 사용하여 Storage Transfer Service가 나열된 경로에서 전송 객체를 고려하고 해당 경로에 없는 객체를 무시하도록 할 수 있습니다.

예를 들어 path_1/ 아래에 객체를 포함하려면 includePrefix를 전달합니다.

includePrefix: "path_1/"

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

path_1/object_3
path_1/subpath_1/object_5
path_1/subpath_2/object_6

포함할 특정 경로도 지정할 수 있습니다. 예를 들어 includePrefix를 전달할 수 있습니다.

includePrefix: "path_1/subpath_2/", "path_1/subpath_3/"

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

path_1/subpath_2/object_6
path_2/subpath_3/object_7

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

경로 제외

전송을 만들 때 excludePrefix를 사용하면 Storage Transfer Service가 전송을 위해 나열된 경로를 무시하도록 지시합니다.

path_1/ 아래에 있는 객체를 제외하려면 excludePrefix를 전달합니다.

excludePrefix: "path_1/"

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

object_1
object_2
path_2/object_4
path_2/subpath_3/object_7
path_2/subpath_4/object_8

제외할 특정 경로를 지정할 수도 있습니다. 예를 들어 excludePrefix를 전달할 수 있습니다.

excludePrefix: "path_1/subpath_2/", "path_2/subpath_3/"

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

object_1
object_2
path_1/object_3
path_2/object_4
path_1/subpath_1/object_5
path_2/subpath_4/object_8

동시에 경로 포함 및 제외

excludePrefixincludePrefix를 함께 적용할 수 있습니다. 이 경우 excludePrefixincludePrefix에 전송에 포함되는 항목을 추가로 제한합니다.

includePrefixexcludePrefix를 모두 지정하는 경우 각 excludePrefixincludePrefix에 지정한 값으로 시작해야 합니다.

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

includePrefix: "path_1/"
excludePrefix: "path_1/subpath_1/"

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

path_1/object_3
path_1/subpath_2/object_6

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

includePrefix: "path_1/", "path_2/"
excludePrefix: "path_1/subpath_1/", "path_2/subpath_3/"

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

path_1/object_3
path_2/object_4
path_1/subpath_2/object_6
path_2/subpath_4/object_8

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

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

다른 include-prefix에 사용되는 경로 포함

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

includePrefix: "path_1/", "path_1/subpath_1"

이 예시에서는 두 번째 includePrefix"path_1/subpath_1"이 이미 "path_1/"에 포함되어 있으므로 includePrefix 값이 유효하지 않습니다. 이 문제를 해결하려면 다음 중 하나를 포함하도록 선택하세요.

  • includePrefix: "path_1"
  • includePrefix: "path_1/subpath_1"

include-prefix로 시작하지 않는 exclude-prefix 사용

excludePrefix는 지정된 includePrefix 값으로 시작해야 합니다. 다음 예시는 excludePrefix 값이 지정된 includePrefix 값으로 시작하지 않기 때문에 잘못되었습니다.

includePrefix: "path_1/", "path_2/"
excludePrefix: "subpath_1/", "subpath_4/"

이 예시에서 excludePrefix 값이 includePrefix 값인 path_1 또는 path_2로 시작하지 않으므로 유효하지 않습니다. 이 문제를 해결하려면 excludePrefixincludePrefix에 나열된 전체 경로가 포함되어 있는지 확인합니다.

includePrefix: "path_1/", "path_2/"
excludePrefix: "path_1/subpath_1/", "path_2/subpath_4/"

다음 단계