팁 & 노하우

|  분야 불문! 어떤 분야든지 자신이 알고 있는 팁이나 노하우를 남겨주세요.

조회 수 145 추천 수 0 댓글 5
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

1531053644050.jpg

- 이미지 출처 : www.infofueguina.com -

 

 

 

 

구글 드라이브 API를 사용하여 사이트의 첨부파일을 업로드 할 때, 업로드한 파일의 소유자를 변경할 필요가 있다.

서비스계정을 사용한다면 드라이브의 유료결제 공간을 사용할 수 없으므로 당연히 필요할 것이고,

각자의 계정을 통해(OAuth2) 업로드를 진행한다고 홰도, 업로더가 파일을 삭제하면 첨부파일을 사용할 수 없게 되므로 소유자 변경이 꼭 필요하다.

 

 

 

그러나 구글은 보안상의 문제로 몇몇 형식을 제외하고는 소유권 이전을 할 수 없도록 막아두었다.

허용된 파일은 구글 문서, 스프레드시트, 프레젠테이션, 설문지, 드로잉, 지도, 폴더로 총 7가지 종류가 있으나,

첨부파일로 올라오는 파일들의 대부분은 저 7개를 만족하지 못한다.

 

 

 

 

 

그래서 조금 번거롭고 아니꼽지만 약간의 꼼수를 사용해야 한다.

 

구글 스크립트(https://script.google.com/) 라는 서비스가 있다.

정확한 서비스명은 구글 앱스 스크립트(GAS) 라고 하는것 같다만, 도메인명은 그냥 script.google 이니 구글 스크립트라고 부르자.

 

어쨌든, 해당 서비스를 사용하면 소유권을 이전할 수 있다.

소유권 이전까지의 흐름은 아래와 같다.

 

 

 

1. API로 파일을 업로드 한다.

2. 업로드한 파일에 소유권을 이전할 계정으로 읽기 권한을 부여한다.

3. 구글 스크립트로 소유권을 이전할 계정의 드라이브에 업로드한 파일을 복사한다.

4.복사한 파일에 기존 업로더의 권한을 부여한다.

5. 기존에 업로드한 파일을 삭제한다.

6. 복사한 파일을 사용하여 다운로드 URL 등을 처리한다.

 

 

 

 

 

나의 경우 폴더를 하나 생성하고, 서비스계정과 유료계정의 권한을 지정한 뒤 해당 폴더에 이동시키는 방식을 사용했다.

아래는 구글 스크립트에서 사용할 수 있는 코드의 예제이다.

 

20180708213556.png

 

code.gs

 

 

웹앱 URL을 생성한 뒤, 파라미터로 fileId=***&folderId=*** 를 추가하여 curl 등의 방식으로 요청하면 된다.

웹앱 URL 생성시 모든 사용자(익명 포함)으로 지정하고, fileId와 folderId 두개 모두에게 권한이 있어야 한다.

 

Who's 네모

profile

메인 카카오톡 ID : kanae98 (네모)

히키코모리 블로그 : https://ndevel.net

상품판매 사이트 : https://ndevel.com


서브컬쳐 카카오톡 ID : cyemo (세모)

아니메월드 : https://open.kakao.com/o/gA8MIx1


27시간 심심하므로 채팅은 언제나 환영! '25시부터 26시 사이에 채팅 상시 대기' 랜덤 추첨 진행중 - 당첨확률 50-10!%

Atachment
첨부 '2'
  • profile
    abnoeh 2018.07.08 22:37
    저러면 모든 업로드 계정 비밀번호를 관리자가 알고 있어야 하는거 아닌가요?
  • profile
    네모 2018.07.08 22:40
    구글 스크립트에서는 스크립트 실행 주체를 선택할 수 있습니다.
    어떤 유저가 실행하더라도 관리자 계정으로만 실행이 되는 방식으로도 설정이 가능합니다.
    그게 기본값이기도 하구요.
  • profile
    맛스타 2018.07.09 00:07
    이거 잘 응용하면 호스팅 용량을 (라이믹스의 files 폴더)를 구글 드라이브에서 불러오도록 할 수 있겠네요.
  • profile
    네모 2018.07.09 00:11
    네. 그 기능을 제작하다가 소유권 이전이 잘 되지 않아서 어찌저찌 떠올린 방법입니다.
  • profile
    abnoeh 2018.07.09 20:05
    그런식으로 긁어오게 하면 api 제한 (한 유저는 100초에 1000번만 요청 가능)에 걸리지 않을까요?
    https://console.developers.google.com/apis/api/drive.googleapis.com/quotas?pli=1


    Queries per day 1,000,000,000
    Queries per 100 seconds per user 1,000
    Queries per 100 seconds 10,000

팁 & 노하우

분야 불문! 어떤 분야든지 자신이 알고 있는 팁이나 노하우를 남겨주세요.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 앞으로 ssh 사용시 한글 사용이 가능합니다. 7 마스터 2018.10.12 12882
공지 접속 불가 사태 수습은 진행중입니다. 35 마스터 2018.10.05 13498
공지 회원 전용 페이지가 생겼습니다. 10 file 마스터 2018.03.20 14134
165 GIF 파일의 용량을 줄여주는 사이트 - gifgifs.com file 이니스프리 2017.10.09 10056
164 안티앨리어싱 옵션: 알고 쓰자. 5 title: 황금 서버 (30일)하루살이 2017.02.25 1710
163 대학생이라면 PHPStorm 무료로 이용하세요 2 Eagles 2017.06.11 1496
162 SKT 데이터 함께 쓰기, 회선수 제한, 직구폰 개통, 아이폰 직구시 주의사항 등 관련 팁 2 이니스프리 2017.11.23 1174
161 [뻘글]CloudFlare를 사용했을 때와 그렇지 않았을 때 속도 차이는 얼마나 날까? 3 file title: 금메달 (30일)동방개념지국 2017.01.13 990
160 작업 관리자의 CPU 이름 바꾸기 1 title: 황금 서버 (30일)하루살이 2017.09.03 979
159 웹폰트 속도 느려서 사용 못하시는분들 참고하세요! 12 file title: 은메달도다 2017.01.27 956
158 PHP 7에서 아미나 구형 위젯 사용시 수정해야 할 부분 2 이니스프리 2017.11.07 881
157 직구나 프로그램 다운로드시 사용 가능한 무료 해외 SMS 수신 사이트 8 이니스프리 2017.12.09 795
156 [할인정보] 핫스팟쉴드 엘리트 VPN 평생 이용권 99.99달러 3 이니스프리 2017.02.09 759
155 .tk 로 접속이 안되는 분들이 요즘 왕왕보이네요. 15 마스터 2016.10.05 754
154 활성 네트워크 이름 바꾸기 1 title: 황금 서버 (30일)하루살이 2017.09.03 745
153 xss 공격 방어 라이브러리 jin**** 2017.07.18 714
152 텍스트 무료 로고 만들기 사이트 4 오후두시스토리 2017.04.05 663
151 www-drv 내 클라우드를 웹서버 처럼! 트래픽 아끼기 개꿀팁!! 18 title: 열려라 맛스타의 자물쇠TVJ 2017.04.29 656
150 KT 인터넷 오피스 IP 서비스 - 홈 서버용 고정 IP 제공 9 file 이니스프리 2018.03.20 548
149 [멀웨어 정보] KT 홈허브 관련 DHCP 설정 변조 관련 멀웨어 유포 정보 및 대처 방법 6 이니스프리 2017.12.05 522
148 무료 홈페이지 비교 7 맛수타 2017.05.07 488
147 [건강/의학] 허리디스크,목디스크 혹은 허리,목아프신분들을 위한 팁. 2 file death 2017.01.25 483
146 대학생일 경우 윈도우10 무료로 받을 수 있습니다 5 file benjamin 2017.07.30 449
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9
서버에 요청 중입니다. 잠시만 기다려 주십시오...