Data Portability API 메서드 호출

Data Portability API는 다음 메서드로 구성됩니다.

  • portabilityArchive.initiate
  • archiveJobs.getPortabilityArchiveState
  • resetAuthorization
  • archiveJobs.retryPortabilityArchive

portabilityArchive.initiate

portabilityArchive.initiate 메서드를 호출하여 새 데이터 내보내기 작업을 시작합니다.

데이터 보관 파일을 만들기 위해 내보내기 작업을 시작할 때 적절한 리소스 그룹을 요청하고 해당 리소스 그룹에 필요한 범위가 포함된 OAuth 토큰을 제공해야 합니다. OAuth 토큰은 요청을 승인하고 내보낼 사용자 데이터를 결정하는 데 사용됩니다.

특정 서비스에서 지원하는 모든 리소스 그룹 목록은 해당 서비스의 스키마 참조 페이지를 확인하세요.

예를 들어 검색 활동 데이터를 내보내는 경우 InitiatePortabilityArchive(resources = ["myactivity.search"])를 호출합니다. 요청에는 검색 OAuth 범위(https://www.googleapis.com/auth/dataportability.myactivity.search)와 연결된 OAuth 토큰이 있어야 합니다.

단일 InitiatePortabilityArchive 호출에 여러 리소스 그룹을 포함할 수 있지만 권장되지 않습니다. 각 리소스 그룹에 대해 별도의 InitiatePortabilityArchive 요청을 실행하면 더 빠르게 처리할 수 있습니다. 여러 리소스 그룹을 요청하는 경우 연결된 OAuth 토큰에는 모든 적절한 범위가 연결되어 있어야 합니다.

예를 들어 InitiatePortabilityArchive(resources = ["myactivity.search","myactivity.youtube"])를 호출하여 검색 및 YouTube 활동을 모두 위한 데이터 보관 파일을 만드는 대신 InitiatePortabilityArchive(resources = ["myactivity.search"])InitiatePortabilityArchive(resources = ["myactivity.youtube"])를 별도로 호출합니다.

InitiatePortabilityArchive 요청은 job_id를 반환합니다. 이 작업 ID는 데이터 보관 파일의 상태를 검색하는 데 사용됩니다.

archiveJobs.getPortabilityArchiveState

데이터 보관 파일 내보내기 작업의 현재 state를 검색하기 위해 archiveJobs.getPortabilityArchiveState 메서드가 호출됩니다. getPortabilityArchiveState를 호출할 때 job_id: GetPortabilityArchiveState(job_id)를 제공합니다. 또한 initiate 요청에 사용된 리소스 그룹과 일치하는 범위의 OAuth 토큰을 제공해야 합니다.

상태가 COMPLETE이면 데이터를 다운로드하는 데 사용할 수 있는 서명된 Cloud Storage URL이 반환됩니다. 서명된 URL은 6시간 후에 만료되고, 데이터는 14일 동안 제공됩니다.

보관처리 요청은 데이터의 양에 따라 완료되는 데 몇 분, 몇 시간 또는 며칠이 걸릴 수 있습니다. 5~60분마다 아카이브 상태를 확인할 수 있습니다.

resetAuthorization

resetAuthorization 메서드는 다음을 실행합니다.

  • 사용자가 부여한 모든 OAuth 범위 취소
  • 애플리케이션이 이전에 사용한 리소스 그룹에 대해 InitiatePortabilityArchive를 호출할 수 있도록 허용합니다.
  • 이전 데이터 보관 파일에 대한 액세스 권한 삭제

resetAuthorization를 호출할 때는 재설정 중인 승인의 사용자에 대해 연결된 OAuth 토큰을 제공해야 합니다.

archiveJobs.retryPortabilityArchive

archiveJobs.retryPortabilityArchive 메서드는 archiveJobs.getPortabilityArchiveState 메서드가 이미 FAILED state를 반환한 실패한 작업을 재시도하기 위해 호출됩니다. 이 문제는 백엔드에 대한 일시적인 실패로 인해 발생할 수 있습니다. 이 경우 사용자에게 OAuth 토큰을 받지 않고 내보내기를 다시 시도할 수 있습니다. retryPortabilityArchive를 호출할 때는 유효한 OAuth 토큰과 함께 job_id를 제공합니다. 그런 다음 엔드포인트는 첫 initiatePortabilityArchive 요청에서 요청된 동일한 리소스 그룹의 내보내기를 만들려고 시도합니다. 성공하면 이 엔드포인트는 getPortabilityArchiveState 호출에 사용할 수 있는 새로운 job_id를 반환합니다. 실패한 작업은 최대 3회까지 재시도할 수 있습니다.

예를 들면 다음과 같습니다.

  1. InitiatePortabilityArchive(resources = ["myactivity.search"])를 호출하면 job_id: 0를 수신합니다.

  2. GetPortabilityArchiveState(0)를 호출하면 JobSate: FAILED를 수신합니다.

  3. 그런 다음 RetryPortabilityArchive(0)를 호출하여 resources = ["myactivity.search"]job_id: 1를 수신할 수 있습니다.

  4. 그런 다음 GetPortabilityArchiveState(1)를 계속 호출할 수 있습니다.