이 페이지에서는 Cloud Storage에서 메서드 호출을 사용하여 시작되는 장기 실행 작업을 사용하는 방법을 설명합니다. 특정 메서드 호출에서 반환되는 장기 실행 작업의 시맨틱스에 대한 자세한 내용은 기능별 문서를 참조하세요.
필요한 역할 얻기
Cloud Storage에서 장기 실행 작업을 관리하는 데 필요한 권한을 얻으려면 관리자에게 기본 작업을 수행하는 데 사용되는 버킷 또는 프로젝트에 대한 스토리지 관리자(roles/storage.admin
) 역할 또는 스토리지 기존 버킷 소유자(roles/storage.legacyBucketOwner
) 역할을 부여해 달라고 요청하세요.
이러한 사전 정의된 역할에는 Cloud Storage에서 장기 실행 작업을 관리하는 데 필요한 다음 권한이 포함되어 있습니다.
storage.bucketOperations.cancel
storage.bucketOperations.get
storage.bucketOperations.list
버킷의 역할 부여에 대한 자세한 내용은 버킷에 IAM 사용을 참조하세요. 프로젝트에 대해 역할을 부여하는 방법은 액세스 관리를 참조하세요.
장기 실행 작업 세부정보 가져오기
명령줄
장기 실행 작업의 세부정보를 가져오거나 상태를 확인하려면 gcloud storage operations describe
명령어를 사용합니다.
gcloud storage operations describe projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID
다음과 같이 바꿉니다.
BUCKET_NAME
: 장기 실행 작업이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OPERATION_ID
: 호출하는 메서드에 대한 응답으로 반환되는 장기 실행 작업의 ID입니다. 예를 들어gcloud storage restore
를 호출하면 다음과 같은 응답이 반환되고 장기 실행 작업 ID는BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
입니다.Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
REST API
JSON API
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.또는 OAuth 2.0 Playground를 사용하여 액세스 토큰을 만들고
Authorization
헤더에 포함할 수 있습니다.cURL
을 사용하여operations.get
요청으로 JSON API를 호출합니다.curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/operations/OPERATION_ID"
다음과 같이 바꿉니다.
BUCKET_NAME
: 장기 실행 작업과 연결된 버킷의 이름입니다.OPERATION_ID
: 호출하는 메서드에 대한 응답으로 반환되는 장기 실행 작업의 ID입니다. 예를 들어gcloud storage restore
를 호출하면 다음과 같은 응답이 반환되고 장기 실행 작업 ID는BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
입니다.Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
요청이 성공하면 operations
리소스가 반환됩니다.
{ "kind": "storage#operation", "name": "projects/_/buckets/bucket/operations/operation_id", "metadata": { "@type": OperationMetadataType*, metadata OperationMetadata* }, "done": boolean, "response": { "@type": ResponseResourceType*, response ResponseResource* } }
버킷의 장기 실행 작업 나열
명령줄
버킷의 장기 실행 작업을 나열하려면 gcloud storage operations list
명령어를 사용합니다.
gcloud storage operations list gs://BUCKET_NAME
다음과 같이 바꿉니다.
BUCKET_NAME
: 장기 실행 작업이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.
REST API
JSON API
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.또는 OAuth 2.0 Playground를 사용하여 액세스 토큰을 만들고
Authorization
헤더에 포함할 수 있습니다.cURL
을 사용하여operations.get
요청으로 JSON API를 호출합니다.curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/operations"
다음과 같이 바꿉니다.
BUCKET_NAME
을 나열하려는 장기 실행 작업과 연결된 버킷의 이름으로 바꿉니다.
요청이 성공하면 다음과 비슷한 응답이 표시됩니다.
{ "kind": "storage#operations", "nextPageToken": string, "operations": [ operations Resource ] }
장기 실행 작업 취소
명령줄
장기 실행 작업을 취소하려면 gcloud storage operations cancel
명령어를 사용합니다.
gcloud storage operations cancel projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID
다음과 같이 바꿉니다.
BUCKET_NAME
: 장기 실행 작업이 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.OPERATION_ID
: 호출하는 메서드에 대한 응답으로 반환되는 장기 실행 작업의 ID입니다. 예를 들어gcloud storage restore
를 호출하면 다음과 같은 응답이 반환되고 장기 실행 작업 ID는BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
입니다.Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
REST API
JSON API
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.또는 OAuth 2.0 Playground를 사용하여 액세스 토큰을 만들고
Authorization
헤더에 포함할 수 있습니다.cURL
을 사용하여operations.post
요청으로 JSON API를 호출합니다.curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/operations/OPERATION_ID/cancel"
다음과 같이 바꿉니다.
BUCKET_NAME
을 취소하려는 장기 실행 작업과 연결된 버킷의 이름으로 바꿉니다.OPERATION_ID
: 호출하는 메서드에 대한 응답으로 반환되는 장기 실행 작업의 ID입니다. 예를 들어gcloud storage restore
를 호출하면 다음과 같은 응답이 반환되고 장기 실행 작업 ID는BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
입니다.Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
메타데이터
장기 실행 작업에는 연관된 메타데이터가 있습니다. 다음 메타데이터는 장기 실행 작업의 속성을 식별합니다.
생성 시간: 장기 실행 작업이 생성된 시간입니다.
종료 시간: 장기 실행 작업 실행이 완료된 시간입니다.
업데이트 시간: 장기 실행 작업이 마지막으로 수정된 시간입니다.
유형: 호출된 장기 실행 작업의 유형입니다.
취소 요청: 사용자가 장기 실행 작업 취소를 요청했는지 여부를 나타냅니다.
진행률: 장기 실행 작업의 예상 진행률(백분율)입니다. 값이
-1
이면 진행 상태를 알 수 없다는 의미입니다.
오류 처리
장기 실행 작업은 비동기식 API에서 시작되며 동기식 API와 다른 오류 처리 방법이 필요합니다. 동기식 API와 달리 비동기 API 호출에 대한 응답은 장기 실행 작업이 결국 실패하더라도 성공을 나타낼 수 있습니다. 응답 헤더에 반환되는 상태 코드에 의존하는 대신 응답 본문의 장기 실행 작업 메타데이터를 파싱하여 API 호출이 성공했는지를 확인합니다.
예를 들어 소프트 삭제 일괄 복원 요청을 수행하면 작업 진행 중 오류가 발생하더라도 성공한 HTTP 상태 코드(200 OK
)가 반환됩니다. 일괄 복원 작업이 성공했는지 확인하려면 장기 실행 작업의 상태를 가져옵니다.
장기 실행 작업 API(Get, List, Cancel)는 동기식이며 일반적인 오류를 반환합니다.