2020-11-02

gdrive 이 앱에서 Google 로그인이 일시적으로 사용 중지되었습니다 해결법

 리눅스에서 구글 드라이브를 Terminal로 사용하는 방법

부제: gdrive 이 앱에서 Google 로그인이 일시적으로 사용 중지되었습니다

 

0.     Linux에서 Google Drive를 사용하고 싶다.

윈도우는 좋은 프로그램들을 잔뜩 지원해주는데리눅스는 알아서 하라는걸까윈도우에서는  를 다운받을 수 있고, G Suite 사용자는  이브  을 사용할 수 있다.

근데    이다수많은 눅스  OS 들과 라즈베리파이 사용자들의 속이 까맣게 타 들어가는 소리가 들렸다그래서 참다 못한 리눅스 사용자들이

 


1.     그래서 알아서 만들어서 쓴다

클론 작업이 편리하게 이루어지려면 역시 GUI보단 CLI가 좋다그래픽 인터페이스가 없으면 하나하나 검색해서 사용해야 한다는 불편함이 늘 함께하지만그 약간의(?) 불편함을 극복하면 완전히 새로운 세상이 펼쳐진다텍스트 기반의 인터페이스는 자동화가 간편하고부재하는 기능을 손쉽게 추가·변형·응용할 수 있다.

내가 만들기 전에 이미 만들어진 소프트웨어가 있는지 검색해 보는 것은 우주의 진리그렇게 검색해본 여러 소프트웨어가 있다.

l  Gdrive (오늘의 주인공)

l  overGrive(오버ㅈㄹ이브)(유료)

l  InSync (유료)

l  drive

l  Rclone

l  GNOME (버전 3.18 이상)

l  drive-cli (Python 패키지)

이 중에서 Gdrive를 사용해볼 것이다.

 

 

2.     설치 방법

생각보다 까다로운 과정이 포함되어 있으니귀찮은걸 싫어한다면 빠른 포기를 권한다큰 흐름을 설명하자면 다음과 같은 과정을 거친다.

 

l  컴파일 된 바이너리 파일 다운로드
(
혹은 직접 컴파일)

l  Google Cloud Platform에서 새 프로젝트 만들기

n  OAuth 2.0 클라이언트 ID 생성

n  클라이언트 ID와 Secret 확보

n  Google Drive API 사용 설정

l  Gdrive 바이너리 파일 수정

l  Gdrive OAuth 인증 후 사용

이 과정을 따라올 수 있는 자만이 다음 단계로 넘어갈 수 있다리눅스 사용자들이라면 이러한 과정에 이미 단련이 될 대로 되었다고 생각하기 때문에마음 놓고 서술하였다.

 

 

3.     컴파일 된 바이너리 파일 다운로드

안타깝게도 Gdrive는 현재 유지보수가 되고 있지 않다하지만 깃허브는 커밋을 거꾸로 거슬로 올라갈 수 있다는 점… 으로  너리  이 2.1.0 버전에 수록되어 있다앞의 링크를 클릭해서 자신의 환경에 맞는 바이너리 파일을 다운받는다.

참고로 라즈베리파이와 Linux arm 64-bit가 서로 다르므로 이 점에 유의하면 좋다.

 

다운받은 파일을 /bin 폴더에 두어도 괜찮고/home/**USERNAME**/gdrive 처럼 유저 홈 디렉토리에 따로 폴더를 만들어 보관해도 좋다다만 /bin 폴더에 두면 PATH를 따로 설정해주지 않아도 바로 커맨드를 입력할 수 있다는 장점이 있지만sudo가 불가능하다면 권한이 필요하지 않은 폴더에 두어도 아무 문제 없다.

 

 

4.     Google Cloud Platform에서 새 프로젝트 만들기

이걸 왜 만들어야 하느냐면… 현재 유지보수 되지 않고 있는 Gdrive를 내가 직접 만든 클라이언트를 통해 구동시켜야 하기 때문이다쉽게 비유하자면넥슨이 망해서 메이플을 못 하니까 프리메이플 서버를 돌려야 할 판이다여기에서 등장하는 OAuth 2.0의 개념이 궁금하다면   을 참조하면 된다이외에도 구글에 ‘OAuth 2.0 이란?’이라고 검색하면 많은 자료들을 만날 수 있다.

새 프로젝트를 만들고 사용자 인증 정보 획득 및 클라이언트 ID와 Secret 코드 확보의 과정은 마찬가지로  에서 매우 친절하게 설명해주고 있으나여기에서도 (아주 조금이지만 더 최신화 된 사진으로설명할 것이다.

 

l   우드 에 접속한다.

구글 계정으로 로그인을 하고새 프로젝트를 생성하면서 프로젝트 이름을 적어준다프로젝트가 생성되면 오른쪽 위에 종 모양의 아이콘에서 프로젝트가 생성되었다고 알림이 뜬다그러면 프로젝트 이름을 클릭해서 해당 프로젝트로 이동해준다.

 

l  ‘API 및 서비스 – 사용자 인증 정보에 들어간다.


l  사용자 인증 정보 만들기 – OAuth 클라이언트 ID를 누른다.

시행착오를 겪으며 이미 만들어둔 클라이언트가 보인다처음 만드는 사람이라면 위의 사진과는 다르게아무런 인증 정보가 보이지 않을 것이다.

중간에 OAuth 동의 화면이 뜰 수 있는데대충 적고 넘어가도 된다.

 

l  클라이언트 생성


이 과정이 중요하다여기에서 클라이언트 ID는 몰라도 클라이언트 보안 비밀번호는 누구에게도 노출하지 말아야 한다이 값을 메모장에 저장해 둔다아래에서 쓰인다.

 

l  사용자 인증 정보 탭 위에 라이브러리 탭으로 들어간다.



위의 사진은 이미 API 사용 설정을 눌렀을 때 볼 수 있는 화면이다. ‘관리를 누르면 할당량(quota) 및 요청량을 확인할 수 있다.

 

l  앱 설정은 이 정도로 마무리

Google Drive API 설정은 여기에서 끝이다위의 과정은 구글 클라우드 플랫폼에 클라이언트를 생성해서 해당 클라이언트가 resource owner(사용자)의 Google Drive에 접근할 수 있게 권한 설정을 한 것이라고 이해하면 편하다(엄밀한 설명은 아니지만 넘어가도록 한다).

 

 

5.     Gdrive 바이너리 파일 수정

위의 번잡스러운 짓을 한 데에는 이유가 있다이 바이너리 파일을 실행($ ./gdrive about)시키면 oauth 인증을 위한 링크가 뜨고해당 링크로 들어가면 아래와 같은 메시지를 볼 수 있기 때문이다.

이 앱에서 Google 로그인이 일시적으로 사용 중지되었습니다

이 앱은 아직 Google 로그인을 사용하도록 Google의 인증을 받지 않았습니다.

 

이제 프리메이플을 돌릴 시간이다.

 

l  Gdrive 바이너리 파일이 존재하는 디렉토리에서 다음과 같은 명령어를 실행한다.

sed -i "s|367116221053-7n0vf5akeru7on6o2fjinrecpdoe99eg.apps.googleusercontent.com|**자신의 클라이언트 아이디**|g" gdrive

sed -i "s|1qsNodXNaWq1mQuBjUjmvhoO|**클라이언트 시크릿**|g" gdrive

위의 명령어는 gdrive 바이너리 파일에서 개발자가 적어둔 클라이언트 ID를 당신의 아이디로 치환하는 명령어이다.

아래의 명령어는 gdrive 바이너리 파일에서 개발자가 적어둔 클라이언트 시크릿을 당신의 시크릿으로 치환하는 명령어이다.

위에서 메모해둔 정보를 입력하여 치환하면 된다.

 

바이너리 파일에서 hex 데이터를 이런 방식으로 치환할 생각을 어떻게 했을까… 이 방법을 가르쳐준   에게 깊은 감사를 표한다.

개발자의 클라이언트에 관한 정보는 허브   에서 확인했으며댓글이   도 가르쳐주었다.

 

그 이후에 해당 바이너리를 실행하며 about 아규먼트를 넣어주어 사용하면 된다사용법에 관해서는 를 참조하기 바란다.

 

 

6.     여담

    의 댓글에 한국인도 있다.. 한국인도 일본인도 모두 영어로 의사소통하는 이 기묘한 분위기는 역시 적응이 안 된다.

 

 


댓글 없음:

댓글 쓰기