Drive API에서 이전

이 문서에서는 권한 관리를 위해 Drive API를 사용하는 코드를 데이터 스튜디오 API로 이전하는 방법을 설명합니다. 일반적인 Drive API 엔드포인트의 경우 상응하는 데이터 스튜디오 API 코드를 보여줍니다.

파일

Drive API 파일 엔드포인트의 경우 데이터 스튜디오 API에는 Files: list 엔드포인트와 동일한 엔드포인트만 있습니다.

목록

API 메서드 엔드포인트
드라이브 POST /drive/v3/files
데이터 스튜디오 GET /v1/assets:search

비교:

드라이브

const oAuthToken = '123' // This should be replaced with a valid OAuth token.
fetch(`https://www.googleapis.com/drive/v3/files`, {
  headers: {
    Authorization: `Bearer ${oAuthToken}`
  },
  method: "POST",
})

데이터 스튜디오

const oAuthToken = '123' // This should be replaced with a valid OAuth token.
fetch(`https://datastudio.googleapis.com/v1/assets:search?assetTypes={ASSET_TYPE}`, {
  headers: {
    Authorization: `Bearer ${oAuthToken}`
  }
})

애셋 검색을 참고하세요.

권한

만들기, 삭제, 가져오기

API 메서드 엔드포인트
드라이브 POST /drive/v3/files/fileId/permissions
드라이브 DELETE /drive/v3/files/fileId/permissions/permissionId
드라이브 GET /drive/v3/files/fileId/permissions/permissionId

데이터 스튜디오 API에는 여러 Permissions 객체를 관리하기 위한 상응하는 엔드포인트가 없습니다. 데이터 스튜디오 애셋에는 권한 객체가 하나만 있으며 항상 존재합니다.

목록

Drive와 데이터 스튜디오 간에 1:1 매칭은 없지만 엔드포인트는 비슷한 목표를 제공합니다. 주요 차이점은 Drive 파일에는 여러 권한 객체가 있을 수 있고 데이터 스튜디오에는 정확히 하나가 있다는 것입니다.

API 메서드 엔드포인트
드라이브 GET /drive/v3/files/fileId/permissions
데이터 스튜디오 GET /v1/assets/assetId/permissions

비교:

드라이브

다음 코드는 Drive API의 모든 권한 객체를 나열합니다. 코드에 따라 페이지 나누기 토큰 (표시된 대로)을 사용하여 이 메서드를 여러 번 호출하여 파일에 설정된 모든 권한을 볼 수 있습니다.

const fileId = '123'; // This should be replaced with a valid Drive ID.
const oAuthToken = '123'; // This should be replaced with a valid OAuth token.
let nextPageToken = undefined;
let permissions = [];
do {
  const permissionsData = await fetch(`https://www.googleapis.com/drive/v3/files/${fileId}/permissions`, {
    headers: {
      Authorization: `Bearer ${oAuthToken}`
    }
  });
  nextPageToken = permissionsData.nextPageToken;
  permissions = permissions.concat(permissionsData.permissions)
} while (nextPageToken !== undefined);

데이터 스튜디오

데이터 스튜디오 애셋에는 권한 객체가 하나만 있으므로 페이지 나누기를 고려할 필요가 없습니다.

const oAuthToken = '123' // This should be replaced with a valid OAuth token.
const assetId = '123' // This should be replaced with a valid asset ID.
fetch(`https://datastudio.googleapis.com/v1/assets/{ASSET_ID}/permissions`, {
  headers: {
    Authorization: `Bearer ${oAuthToken}`
  }
}

권한 가져오기를 참고하세요.

업데이트

권한 업데이트의 경우 데이터 스튜디오 및 Drive API의 기능이 매우 유사합니다. 주요 차이점은 데이터 스튜디오 권한에 expirationTime을 설정할 수 없다는 것입니다.

API 메서드 엔드포인트
드라이브 PATCH /drive/v3/files/fileId/permissions/permissionId
데이터 스튜디오 PATCH /v1/assets/assetId/permissions

비교:

드라이브

const fileId = '123'; // This should be replaced with a valid Drive ID.
const oAuthToken = '123'; // This should be replaced with a valid OAuth token.
const newPermissionsObject = {
  expirationTime: '...',
  role: 'owner', // Or any other option
}
fetch(`https://www.googleapis.com/drive/v3/files/${fileId}/permissions/permissionId`, {
  headers: {
    Authorization: `Bearer ${oAuthToken}`
  },
  method: "PATCH",
  body: JSON.stringify(newPermissionsObject)
})

데이터 스튜디오

const oAuthToken = '123' // This should be replaced with a valid OAuth token.
const assetId = '123' // This should be replaced with a valid asset ID.
const newPermissionsObject = {
  permissions: {
    //...
  }
}

fetch(`https://datastudio.googleapis.com/v1/assets/${assetId}/permissions`, {
  headers: {
    Authorization: `Bearer ${oAuthToken}`
  },
  method: "PATCH",
  body: JSON.stringify({
    name: assetId,
    permissions: newPermissionsObject
  })
})

사용 사례별 대안은 다음을 참고하세요.