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회까지 재시도할 수 있습니다.
예를 들면 다음과 같습니다.
InitiatePortabilityArchive(resources = ["myactivity.search"])
를 호출하면job_id: 0
를 수신합니다.GetPortabilityArchiveState(0)
를 호출하면JobSate: FAILED
를 수신합니다.그런 다음
RetryPortabilityArchive(0)
를 호출하여resources = ["myactivity.search"]
의job_id: 1
를 수신할 수 있습니다.그런 다음
GetPortabilityArchiveState(1)
를 계속 호출할 수 있습니다.