Folder
Google 드라이브 API v2를 사용해서 만든 웹앱입니다.
developers.google.com/drive/api/v2/about-sdk
The metadata for a file.
https://developers.google.com/drive/api/v2/reference/files
App 화면에 Google 드라이브 폴더 주소를 입력하고 제출하면 하위 폴더와 파일의 속성을 읽어서 목록을 만듭니다.
속성: title, mimeType, url, created Date, modified Date, size, owner, user Permission, parent IDs
App 화면에 my를 입력하면 내 드라이브에 있는 하위 폴더와 파일 목록을 만듭니다.
Web app URL
https://script.google.com/macros/s/AKfycbyPXZ8O5ajbwmjg75MOJ0_KrrcMSMGDseP1zAjB9UKTjNyRtUJL/exec
스크립트에 필요한 OAuth 범위 4개:
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/script.scriptapp
https://www.googleapis.com/auth/spreadsheets
https://www.googleapis.com/auth/userinfo.email
App 사용자가 제출한 폴더의 자식 폴더 목록을 얻기 위해서 Drive Service( https://developers.google.com/apps-script/reference/drive/ )와 Advanced Drive Service( https://developers.google.com/apps-script/advanced/drive )를 사용합니다.
이 때 https://www.googleapis.com/auth/drive 권한이 필요합니다.
폴더 목록을 만드는 중에 스크립트 시간 제약으로 작업이 중단됩니다.
중단된 작업을 계속하기 위해서 Trigger를 사용합니다. 이를 위해서 https://www.googleapis.com/auth/script.scriptapp 권한이 필요합니다.
App 사용자가 제출한 폴더의 자식 폴더 목록을 스프레드시트에 기록하기 위해서 https://www.googleapis.com/auth/spreadsheets 권한이 필요합니다.
App 사용자의 이메일을 화면에 표시 하기 위해서 getEffectiveUser( https://developers.google.com/apps-script/reference/base/session#getEffectiveUser() )를 사용합니다.
이를 위해서 https://www.googleapis.com/auth/userinfo.email 권한이 필요합니다.
로그 스프레드시트
로그 스프레드시트는 앱 화면에서 Log Spreadsheet 링크를 클릭하면 볼 수 있습니다.
앱 작업 이력을 볼 수 있습니다.
앱 사용자가 폴더가 아닌 URL을 제출하면 파일 속성을 읽어서 로그 스프레드시트에 기록합니다.
앱 사용자가 폴더 URL을 제출하면 폴더 스프레드시트를 만듭니다.
폴더 스프레드시트
테스트를 위해서 앱의 입력 상자에 G Folder Site의 URL을 입력하고 Submit 버튼을 클릭했습니다.
https://drive.google.com/drive/folders/0B_MA3GXgQ1ulZzVxWnE2RHhvX2M
시트에 기록하는 것이 완료되면 D1 셀이 Completed로 바뀝니다.
만들어진 폴더 스프레드시트입니다.
오류로 작업이 중단되었다면 앱 화면의 입력 상자에 resume을 입력하세요.