Storage Transfer Service는 공개 URL 목록의 파일을 Cloud Storage 버킷으로 복사할 수 있습니다.
전송을 만들 때 전송할 객체의 URL과 세부정보가 포함된 탭으로 구분된 값 (TSV) 파일의 링크를 제공합니다. TSV 파일은 공개적으로 액세스 가능한 HTTP 또는 HTTPS 위치에 호스팅하거나 Cloud Storage 버킷에 저장할 수 있습니다.
이 페이지에서는 URL 목록을 만들고 작업 생성 명령어에 전달하는 방법을 설명합니다.
소스 파일 요구사항
- URL은 공개적으로 액세스가 가능해야 하며 HTTP 또는 HTTPS 프로토콜을 사용해야 합니다.
- 각 객체를 호스팅하는 서버는 다음과 같습니다.
robots.txt
로 객체에 대한 액세스를 거부해서는 안 됩니다.Range
요청을 지원합니다.- 각 응답에서
Content-Length
헤더를 반환합니다.
URL 목록 형식
URL 목록은 다음 요구사항을 준수해야 합니다.
- 파일 형식은 탭으로 구분된 값이어야 합니다.
- URL은 UTF-8 사전 순서로 되어야 합니다.
- 첫 번째 줄에는
TsvHttpData-1.0
를 지정해야 합니다. - 첫 번째 줄 다음에는 행당 하나의 객체를 지정합니다.
- 각 행에는 URL이 포함되어야 하며 파일 크기와 객체의 Base64로 인코딩된 MD5 체크섬도 포함될 수 있습니다.
다음은 전송할 두 객체를 지정하는 샘플 TSV 파일입니다. 이 페이지에서는 탭이 공백으로 렌더링됩니다. 자체 파일의 경우 필드 사이에 탭을 사용해야 합니다.
TsvHttpData-1.0
https://example.com/myfile.pdf 1357 wHENa08V36iPYAsOa2JAdw==
https://example2.com/images/dataset1/flower.png 2468 R9acAaveoPd2y8nniLUYbw==
각 줄에는 다음이 포함됩니다.
- 소스 객체의 HTTP 또는 HTTPS URL.
(선택사항) 객체 크기(바이트)입니다.
객체를 가져올 때 지정된 크기가 객체의 실제 크기와 일치하는지 확인합니다. Cloud Storage에서 수신한 객체의 크기가 지정된 크기와 일치하지 않으면 객체 전송이 실패합니다.
(선택사항) 객체의 Base64로 인코딩된 MD5 체크섬입니다.
지정된 MD5 체크섬이 전송된 바이트에서 계산된 MD5 체크섬과 일치하는지 확인합니다. Cloud Storage에서 수신한 객체의 MD5 체크섬이 지정된 MD5 체크섬과 일치하지 않으면 객체 전송이 실패합니다.
객체 크기 및 MD5 체크섬 값은 선택사항이지만 데이터 무결성을 보장하려면 포함하는 것이 좋습니다.
URL 목록 호스팅
URL 목록은 다음 두 위치 중 하나에 호스팅될 수 있습니다.
- 공개적으로 액세스 가능한 URL입니다.
Storage Transfer Service의 서비스 에이전트에 액세스 권한이 부여된 Cloud Storage 버킷
공개적으로 액세스 가능한 URL
공개적으로 액세스 가능한 URL에 URL 목록을 저장하는 경우 다음 요구사항이 적용됩니다.
- URL은
http://
또는https://
로 시작해야 합니다. - 서버는 URL 목록을 반환할 때 HTTP 응답에 강력한
Etag
헤더를 설정해야 합니다.
예를 들어 Cloud Storage 버킷에 목록을 저장하고 객체를 공개적으로 공유하여 객체에 대한 링크를 가져올 수 있습니다.
Cloud Storage 버킷
목록을 공개 위치에 저장하지 않으려면 Cloud Storage 버킷에 저장하고 Storage Transfer Service의 서비스 상담사에게 액세스 권한을 부여하면 됩니다.
서비스 에이전트에는 다음 권한이 부여되어야 합니다.
- 객체에 대한
storage.object.get
권한 버킷에roles/storage.legacyObjectReader
역할을 부여하거나 맞춤 역할을 사용하여 이를 부여할 수 있습니다. - 버킷에 대한
storage.buckets.get
권한roles/storage.legacyBucketReader
역할을 부여하거나 커스텀 역할을 사용하여 이를 부여할 수 있습니다.
서비스 에이전트에 권한을 부여하려면 다음 단계를 따르세요.
서비스 에이전트의 이메일 찾기
googleServiceAccounts.get
참조 페이지로 이동합니다.이 메서드 사용해 보기라는 제목의 대화형 패널이 열립니다.
패널의 요청 매개변수에 프로젝트 ID를 입력합니다. 여기에서 지정하는 프로젝트는 Storage Transfer Service 관리를 위해 사용 중인 프로젝트여야 하고, 이 프로젝트는 URL 목록 버킷의 프로젝트와 다를 수 있습니다.
실행을 클릭합니다.
서비스 상담사의 이메일은 accountEmail
값으로 반환되며 project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
형식을 사용합니다.
이 값을 복사합니다.
필수 역할 부여
URL 목록이 포함된 버킷의 서비스 에이전트에 roles/storage.objectViewer
역할과 roles/storage.bucketViewer
역할을 부여하려면 버킷에 IAM 정책 설정 및 관리의 안내를 따르세요.
추가하는 주 구성원은 서비스 에이전트의 이메일 주소입니다. 필요한 경우 기본 식별자는 serviceAccount
입니다. 예를 들면 serviceAccount:project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
입니다.
URL 목록 전송 작업 만들기
전송 작업을 만들 때 URL 목록을 지정하려면 다음 안내를 따르세요.
Google Cloud console
전송 작업 만들기의 안내를 따릅니다.
소스를 선택할 때는 다음 사항을 고려하세요.
소스 유형에서 URL 목록을 선택하고 다음 단계를 클릭합니다.
TSV 파일의 URL에 탭으로 구분된 값(TSV) 파일의 URL을 입력합니다. URL은 HTTP/HTTPS 주소 (예:
https://example.com/urllist.tsv
) 또는 Cloud Storage 경로(예:gs://my-bucket/urllist.tsv
)입니다.
gcloud CLI
새 전송 작업을 만들려면 gcloud transfer jobs create
명령어를 사용합니다.
gcloud transfer jobs create \
SOURCE DESTINATION
URL 목록 전송의 경우 SOURCE의 값은 TSV 파일의 URL입니다. URL은 HTTP/HTTPS 주소 (예: https://example.com/urllist.tsv
) 또는 Cloud Storage 경로(예: gs://my-bucket/urllist.tsv
)입니다.
gcloud CLI를 사용하여 전송을 만드는 방법에 관한 자세한 내용은 전송 작업 만들기를 참고하세요.
REST
REST API를 사용하여 URL 목록 전송 작업을 만들려면 listUrl
필드에 TSV 파일의 URL을 지정합니다.
{
"projectId": "PROJECT_ID",
"transferSpec": {
"httpDataSource": {
"listUrl": "URL"
},
"gcsDataSink": {
"bucketName": "DESTINATION_BUCKET"
}
},
"status": "ENABLED"
}
URL의 값은 HTTP/HTTPS 주소 (예: https://example.com/urllist.tsv
) 또는 Cloud Storage 경로(예: gs://my-bucket/urllist.tsv
)입니다.
REST API를 사용하여 전송을 만드는 방법에 관한 자세한 내용은 REST API 참조를 참고하세요.