전송에서 객체 필터링

이 문서에서는 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/"