TransferSpec

전송 실행을 위한 구성입니다.

JSON 표현
{
  "objectConditions": {
    object (ObjectConditions)
  },
  "transferOptions": {
    object (TransferOptions)
  },
  "transferManifest": {
    object (TransferManifest)
  },
  "sourceAgentPoolName": string,
  "sinkAgentPoolName": string,

  // Union field data_sink can be only one of the following:
  "gcsDataSink": {
    object (GcsData)
  },
  "posixDataSink": {
    object (PosixFilesystem)
  }
  // End of list of possible types for union field data_sink.

  // Union field data_source can be only one of the following:
  "gcsDataSource": {
    object (GcsData)
  },
  "awsS3DataSource": {
    object (AwsS3Data)
  },
  "httpDataSource": {
    object (HttpData)
  },
  "posixDataSource": {
    object (PosixFilesystem)
  },
  "azureBlobStorageDataSource": {
    object (AzureBlobStorageData)
  },
  "awsS3CompatibleDataSource": {
    object (AwsS3CompatibleData)
  },
  "hdfsDataSource": {
    object (HdfsData)
  }
  // End of list of possible types for union field data_source.

  // Union field intermediate_data_location can be only one of the following:
  "gcsIntermediateDataLocation": {
    object (GcsData)
  }
  // End of list of possible types for union field intermediate_data_location.
}
필드
objectConditions

object (ObjectConditions)

이러한 객체 조건을 충족하는 객체만 데이터 소스 및 데이터 싱크 객체 집합에 포함됩니다. 객체의 '최종 수정 시간'을 기반으로 하는 객체 조건은 데이터 싱크의 객체를 제외하지 않습니다.

transferOptions

object (TransferOptions)

deleteObjectsUniqueInSink 옵션이 true이고 '최종 수정 시간'과 같은 시간 기반 객체 조건이 지정된 경우 요청이 INVALID_ARGUMENT 오류와 함께 실패합니다.

transferManifest

object (TransferManifest)

매니페스트 파일은 데이터 소스에서 전송할 객체 목록을 제공합니다. 이 필드는 매니페스트 파일의 위치를 가리킵니다. 그렇지 않으면 전체 소스 버킷이 사용됩니다. ObjectConditions는 계속 적용됩니다.

sourceAgentPoolName

string

posix 데이터 소스와 연결된 에이전트 풀 이름을 지정합니다. 지정하지 않으면 기본 이름이 사용됩니다.

sinkAgentPoolName

string

posix 데이터 싱크와 연결된 에이전트 풀 이름을 지정합니다. 지정하지 않으면 기본 이름이 사용됩니다.

통합 필드 data_sink. 데이터의 쓰기 싱크입니다. data_sink은 다음 중 하나여야 합니다.
gcsDataSink

object (GcsData)

Cloud Storage 데이터 싱크입니다.

posixDataSink

object (PosixFilesystem)

POSIX 파일 시스템 데이터 싱크입니다.

통합 필드 data_source. 데이터의 읽기 소스입니다. data_source은 다음 중 하나여야 합니다.
gcsDataSource

object (GcsData)

Cloud Storage 데이터 소스입니다.

awsS3DataSource

object (AwsS3Data)

AWS S3 데이터 소스

httpDataSource

object (HttpData)

HTTP URL 데이터 소스

posixDataSource

object (PosixFilesystem)

POSIX 파일 시스템 데이터 소스

azureBlobStorageDataSource

object (AzureBlobStorageData)

Azure Blob Storage 데이터 소스입니다.

awsS3CompatibleDataSource

object (AwsS3CompatibleData)

AWS S3 호환 데이터 소스입니다.

hdfsDataSource

object (HdfsData)

HDFS 클러스터 데이터 소스입니다.

통합 필드 intermediate_data_location.

intermediate_data_location는 다음 중 하나여야 합니다.

gcsIntermediateDataLocation

object (GcsData)

파일 시스템 간 전송의 경우 데이터를 전송할 중간 위치로 사용할 Cloud Storage 버킷을 지정합니다.

자세한 내용은 파일 시스템 간 데이터 전송을 참고하세요.

PosixFilesystem

POSIX 파일 시스템 리소스

JSON 표현
{
  "rootDirectory": string
}
필드
rootDirectory

string

파일 시스템의 루트 디렉터리 경로입니다.

AwsS3Data

AwsS3Data 리소스는 데이터 소스일 수 있지만 데이터 싱크는 아닙니다. AwsS3Data 리소스에서 객체의 이름은 S3 객체의 키 이름입니다.

JSON 표현
{
  "bucketName": string,
  "awsAccessKey": {
    object (AwsAccessKey)
  },
  "path": string,
  "roleArn": string,
  "cloudfrontDomain": string,
  "credentialsSecret": string,

  // Union field private_network can be only one of the following:
  "managedPrivateNetwork": boolean
  // End of list of possible types for union field private_network.
}
필드
bucketName

string

필수 입력란입니다. S3 버킷 이름 (버킷 만들기 참고)

awsAccessKey

object (AwsAccessKey)

입력 전용입니다. AWS S3 버킷에 대한 API 요청에 서명하는 데 사용되는 AWS 액세스 키입니다. 버킷에 대한 권한은 AWS 액세스 키의 액세스 ID에 부여해야 합니다.

사용자 인증 정보의 데이터 보관 정책에 대한 자세한 내용은 사용자 인증 정보를 참고하세요.

path

string

객체를 전송할 루트 경로입니다.

빈 문자열이거나 '/'로 끝나는 전체 경로 이름이어야 합니다. 이 필드는 객체 접두사로 처리됩니다. 따라서 일반적으로 '/'로 시작해서는 안 됩니다.

roleArn

string

AssumeRoleWithWebIdentity를 통해 임시 사용자 인증 정보를 지원하는 역할의 Amazon 리소스 이름 (ARN)입니다. ARN에 관한 자세한 내용은 IAM ARN을 참고하세요.

역할 ARN이 제공되면 Transfer Service는 이 프로젝트의 GoogleServiceAccount를 사용하여 제공된 역할의 AssumeRoleWithWebIdentity 호출을 사용하여 세션의 임시 사용자 인증 정보를 가져옵니다.

cloudfrontDomain

string

선택사항입니다. 가져올 때 사용할 이 버킷을 가리키는 CloudFront 배포 도메인 이름입니다.

자세한 내용은 CloudFront를 통해 S3에서 전송을 참고하세요.

형식: https://{id}.cloudfront.net 또는 유효한 맞춤 도메인 https://로 시작해야 합니다.

credentialsSecret

string

선택사항입니다. Secret Manager의 보안 비밀 리소스 이름입니다.

AWS 사용자 인증 정보는 JSON 형식으로 Secrets Manager에 저장되어야 합니다.

{ "accessKeyId": "ACCESS_KEY_ID", "secretAccessKey": "SECRET_ACCESS_KEY" }

GoogleServiceAccount에 리소스에 대한 roles/secretmanager.secretAccessor가 부여되어야 합니다.

자세한 내용은 소스에 대한 액세스 구성: Amazon S3를 참고하세요.

credentialsSecret가 지정된 경우 roleArn 또는 awsAccessKey를 지정하지 마세요.

형식: projects/{projectNumber}/secrets/{secret_name}

통합 필드 private_network.

private_network는 다음 중 하나여야 합니다.

managedPrivateNetwork

boolean

Google 관리 비공개 네트워크를 통한 이그레스 바이트입니다. 이 네트워크는 Storage Transfer Service의 다른 사용자 간에 공유됩니다.

AwsAccessKey

AWS 액세스 키 (AWS 보안 사용자 인증 정보 참고)

사용자 인증 정보의 데이터 보관 정책에 대한 자세한 내용은 사용자 인증 정보를 참고하세요.

JSON 표현
{
  "accessKeyId": string,
  "secretAccessKey": string
}
필드
accessKeyId

string

필수 입력란입니다. AWS 액세스 키 ID

secretAccessKey

string

필수 입력란입니다. AWS 보안 비밀 액세스 키 이 필드는 RPC 응답에 반환되지 않습니다.

HttpData

HttpData 리소스는 HTTP를 통해 전송할 웹의 객체 목록을 지정합니다. 전송할 객체의 정보는 URL이 참조하는 파일에 포함되어 있습니다. 파일의 첫 번째 줄은 파일 형식을 지정하는 "TsvHttpData-1.0"여야 합니다. 후속 행은 객체 목록의 정보를 지정하며 목록 항목당 하나의 객체입니다. 각 항목에는 다음과 같이 탭으로 구분된 필드가 있습니다.

  • HTTP URL: 객체의 위치입니다.

  • 길이: 객체 크기(바이트)입니다.

  • MD5: 객체의 base64로 인코딩된 MD5 해시입니다.

유효한 TSV 파일의 예는 URL에서 데이터 전송을 참고하세요.

URL 목록을 기반으로 데이터를 전송할 때는 다음 사항에 유의하세요.

  • http(s)://hostname:port/<URL-path>에 있는 객체가 데이터 싱크로 전송되면 데이터 싱크의 객체 이름은 <hostname>/<URL-path>입니다.

  • 객체의 지정된 크기가 가져온 객체의 실제 크기와 일치하지 않으면 객체가 전송되지 않습니다.

  • 지정된 MD5가 전송된 바이트에서 계산된 MD5와 일치하지 않으면 객체 전송이 실패합니다.

  • 지정한 각 URL에 공개적으로 액세스할 수 있습니다. 예를 들어 Cloud Storage에서 객체를 공개적으로 공유하고 이 객체에 대한 링크를 가져올 수 있습니다.

  • 저장소 전송 서비스는 robots.txt 규칙을 따르며 소스 HTTP 서버가 Range 요청을 지원하고 각 응답에서 Content-Length 헤더를 반환해야 합니다.

  • ObjectConditions는 전송할 객체를 필터링할 때 아무런 영향을 미치지 않습니다.

JSON 표현
{
  "listUrl": string
}
필드
listUrl

string

필수 입력란입니다. 객체 목록 항목을 저장하는 파일을 가리키는 URL입니다. 이 파일은 공개 액세스를 허용해야 합니다. 현재 HTTP 및 HTTPS 스키마가 있는 URL만 지원됩니다.

AzureBlobStorageData

AzureBlobStorageData 리소스는 데이터 소스일 수 있지만 데이터 싱크는 아닙니다. AzureBlobStorageData 리소스는 하나의 Azure 컨테이너를 나타냅니다. 스토리지 계정에 따라 Azure 엔드포인트가 결정됩니다. AzureBlobStorageData 리소스에서 blob의 이름은 Azure Blob Storage blob의 키 이름입니다.

JSON 표현
{
  "storageAccount": string,
  "azureCredentials": {
    object (AzureCredentials)
  },
  "container": string,
  "path": string,
  "credentialsSecret": string
}
필드
storageAccount

string

필수 입력란입니다. Azure Storage 계정의 이름입니다.

azureCredentials

object (AzureCredentials)

필수 입력란입니다. 입력 전용입니다. Azure에 대한 API 요청을 인증하는 데 사용되는 사용자 인증 정보입니다.

사용자 인증 정보의 데이터 보관 정책에 대한 자세한 내용은 사용자 인증 정보를 참고하세요.

container

string

필수 입력란입니다. Azure Storage 계정에서 전송할 컨테이너입니다.

path

string

객체를 전송할 루트 경로입니다.

빈 문자열이거나 '/'로 끝나는 전체 경로 이름이어야 합니다. 이 필드는 객체 접두사로 처리됩니다. 따라서 일반적으로 '/'로 시작해서는 안 됩니다.

credentialsSecret

string

선택사항입니다. Secret Manager의 보안 비밀 리소스 이름입니다.

Azure SAS 토큰은 JSON 형식으로 Secret Manager에 저장되어야 합니다.

{ "sasToken" : "SAS_TOKEN" }

GoogleServiceAccount에 리소스에 대한 roles/secretmanager.secretAccessor가 부여되어야 합니다.

자세한 내용은 소스에 대한 액세스 구성: Microsoft Azure Blob Storage를 참고하세요.

credentialsSecret가 지정된 경우 azureCredentials를 지정하지 마세요.

형식: projects/{projectNumber}/secrets/{secret_name}

AzureCredentials

Azure 사용자 인증 정보

사용자 인증 정보의 데이터 보관 정책에 대한 자세한 내용은 사용자 인증 정보를 참고하세요.

JSON 표현
{
  "sasToken": string
}
필드
sasToken

string

필수 입력란입니다. Azure 공유 액세스 서명 (SAS)

SAS에 대한 자세한 내용은 공유 액세스 서명 (SAS)을 사용하여 Azure Storage 리소스에 대한 제한된 액세스 권한 부여를 참고하세요.

AwsS3CompatibleData

AwsS3CompatibleData 리소스

JSON 표현
{
  "bucketName": string,
  "path": string,
  "endpoint": string,
  "region": string,

  // Union field data_provider can be only one of the following:
  "s3Metadata": {
    object (S3CompatibleMetadata)
  }
  // End of list of possible types for union field data_provider.
}
필드
bucketName

string

필수 입력란입니다. 버킷 이름을 지정합니다.

path

string

객체를 전송할 루트 경로를 지정합니다.

빈 문자열이거나 '/'로 끝나는 전체 경로 이름이어야 합니다. 이 필드는 객체 접두사로 처리됩니다. 따라서 일반적으로 '/'로 시작해서는 안 됩니다.

endpoint

string

필수 입력란입니다. 스토리지 서비스의 엔드포인트를 지정합니다.

region

string

요청에 서명할 리전을 지정합니다. 요청에 빈 리전으로 서명해야 하는 경우 이 입력란을 비워둘 수 있습니다.

통합 필드 data_provider. S3 호환 데이터 제공업체의 메타데이터를 지정합니다. 각 제공업체는 일부 S3 호환 데이터 제공업체에 적용되지 않는 일부 속성을 포함할 수 있습니다. 지정하지 않으면 S3CompatibleMetadata가 기본적으로 사용됩니다. data_provider은 다음 중 하나여야 합니다.
s3Metadata

object (S3CompatibleMetadata)

S3 호환 메타데이터입니다.

S3CompatibleMetadata

S3CompatibleMetadata에는 S3 호환 데이터 제공업체의 기본 유형에 적용되는 메타데이터 필드가 포함됩니다.

JSON 표현
{
  "authMethod": enum (AuthMethod),
  "requestModel": enum (RequestModel),
  "protocol": enum (NetworkProtocol),
  "listApi": enum (ListApi)
}
필드
authMethod

enum (AuthMethod)

스토리지 서비스에서 사용하는 인증 및 승인 방법을 지정합니다. 지정하지 않으면 전송 서비스에서 사용할 올바른 인증 방법을 결정하려고 시도합니다.

requestModel

enum (RequestModel)

스토리지 서비스를 호출하는 데 사용되는 API 요청 모델을 지정합니다. 지정하지 않으면 RequestModel REQUEST_MODEL_VIRTUAL_HOSTED_STYLE의 기본값이 사용됩니다.

protocol

enum (NetworkProtocol)

에이전트의 네트워크 프로토콜을 지정합니다. 지정하지 않으면 NetworkProtocol NETWORK_PROTOCOL_HTTPS의 기본값이 사용됩니다.

listApi

enum (ListApi)

객체를 검색하는 데 사용할 Listing API입니다. 지정하지 않으면 전송 서비스에서 사용할 적절한 API를 결정하려고 시도합니다.

AuthMethod

스토리지 서비스에서 사용하는 인증 및 승인 방법입니다.

열거형
AUTH_METHOD_UNSPECIFIED AuthMethod가 지정되지 않았습니다.
AUTH_METHOD_AWS_SIGNATURE_V4 AWS SigV4로 인증 요청
AUTH_METHOD_AWS_SIGNATURE_V2 AWS SigV2로 인증 요청

RequestModel

API의 요청 모델입니다.

열거형
REQUEST_MODEL_UNSPECIFIED RequestModel이 지정되지 않았습니다.
REQUEST_MODEL_VIRTUAL_HOSTED_STYLE 가상 호스팅 스타일을 사용하여 요청을 실행합니다. 예: https://bucket-name.s3.region.amazonaws.com/key-name
REQUEST_MODEL_PATH_STYLE 경로 스타일을 사용하여 요청을 실행합니다. 예: https://s3.region.amazonaws.com/bucket-name/key-name

NetworkProtocol

스토리지 서비스에 액세스하는 에이전트 네트워크 프로토콜입니다.

열거형
NETWORK_PROTOCOL_UNSPECIFIED NetworkProtocol이 지정되지 않았습니다.
NETWORK_PROTOCOL_HTTPS HTTPS를 사용하여 요청을 실행합니다.
NETWORK_PROTOCOL_HTTP 권장하지 않음: 일반 텍스트로 데이터를 전송합니다. 폐쇄형 네트워크 내에서 또는 공개적으로 사용 가능한 데이터에만 적합합니다. HTTP를 사용하여 요청을 실행합니다.

ListApi

객체를 검색하는 데 사용할 Listing API입니다.

열거형
LIST_API_UNSPECIFIED ListApi가 지정되지 않았습니다.
LIST_OBJECTS_V2 ListObjectsV2 API를 사용하여 등록처리합니다.
LIST_OBJECTS 기존 ListObjects API

HdfsData

HdfsData 리소스는 HDFS 항목 (예: 클러스터) 내의 경로를 지정합니다. 네임노드 및 포트와 같은 모든 클러스터별 설정은 요청을 처리하는 전송 에이전트에서 구성되므로 HdfsData에는 전송 중인 데이터의 루트 경로만 포함됩니다.

JSON 표현
{
  "path": string
}
필드
path

string

파일을 전송할 루트 경로입니다.

TransferManifest

매니페스트가 있는 위치를 지정합니다.

JSON 표현
{
  "location": string
}
필드
location

string

Cloud Storage의 매니페스트 경로를 지정합니다. 전송의 Google 관리형 서비스 계정에는 이 객체에 대한 storage.objects.get 권한이 있어야 합니다. 경로의 예는 gs://bucketName/path/manifest.csv입니다.