2021/10/07

,

구글 공유 드라이브 무료 동기화 유틸 | AutoRclone

구글 공유 드라이브 무료 동기화 유틸 | AutoRclone

Sync-Google-Shared-Drive-with-AutoRclone
<AutoRclone을 사용하면 구글 공유 드라이브끼리 동기화할 수 있다>

• 2021/10/07: 필독! 현재 과도하게 트래픽을 유발하면 (하루 최소 5TB에서 최대 10TB 안팎???계정당 2TB) 프로젝트에 제한이 걸린다(Action required: Critical problem with your Google Cloud/APIs project Quickstart). 항소 요청이 받아들여지지 않으면 해당 프로젝트에서 더는 SA 계정 생성도 안 되고, AutoRclone도 사용할 수 없다. 이땐 새 프로젝트를 만들어야 한다.

• 2021/10/10: 「구글 드라이브 API SA(서비스 계정) 제한과 우회 방법

한 계정 당 대역폭 제한 75TB까지 확장

지난번에 「구글 공유 드라이브끼리 동기화하는 방법」으로 에어 익스플로러(Air Explorer)를 사용했다. Air Explorer는 윈도우 사용자에게 친숙한 GUI 인터페이스이기 때문에 사용하기 쉽다는 장점이 있지만, 하루 대역폭 제한(750GB)에서 벗어날 수 없다는 한계가 있다. 구글 계정을 여러 개 사용하여 대역폭을 추가할 수 있지만, 이것에도 한계는 있다. 이를 거의 해결한 것이 AutoRclone을 이용한 구글 공유 드라이브 동기화다.

rclone을 기반으로 하는 AutoRclone은 Google Cloud Platform에서 제공하는 서비스 계정(SA: Service account) 100개를 생성함으로써 하나의 계정의 하루 대역폭 제한을 75TB(750GB x 100)까지 확장할 수 있다 (이론적으로 100개 이상도 가능하지만, 구글의 제약을 받을 수 있다고 한다). 75TB가 부족하면 여분의 구글 계정을 활용하면 된다.

75TB 정도면 현재로선 거의 무한이라고 해도 과언은 아닐 것이며, 공유 드라이브를 여러 개 활용하는 사람들에겐 어찌 보면 필수적인 동기화 프로그램이지 아닐까 싶다.

AutoRclone의 단점이 있다면, Air Explorer처럼 폴더 동기화는 안 된다는 것이다(rclone, gclone은 가능한 것으로 보임). 그래도 전체적으로 동기화 속도는 에어 익스플로러보다 빠르고, 이 정보를 귀띔해 준 tosh님의 의하면 gclone은 더 빠르다고 한다.

AutoRclone의 또 하나의 단점은 사용법이 다소 어렵다는 것이다(그렇다고는 해도 내가 볼 땐 rclone보다는 쉽다). 영어 울렁증만 없다면, AutoRclone 홈페이지 설명과 유튜브 동영상(태국어? 베트남어?)으로 사용법을 숙지할 수 있지만, 그렇지 못한 분들을 위해, 그리고 훗날 내가 잊어버릴 때를 대비하여(그래서 나도 종종 내가 쓴 글을 찾아본다) 이 글을 작성하기로 했다.

내 글에 담긴 정보가 명확하지 못할 수도 있고, 부족할 수도 있지만 나도 이제 막 배운 참이라 어쩔 수가 없다. 아무쪼록 건투를 빈다.

참고로 글이 너무 길어지는 것을 방지하고자 이미지는 최대한 절제했다(글 작성을 위해 준비한 스크린샷만 무려 40장이 넘는다). 그래도 꽤 많이 첨부될 것이다.

AutoRclone으로 구글 공유 드라이브 동기화 1/2단계

• 준비물: 구글 계정, 동기화에 사용할 공유 드라이브 두 개 이상, python, rclone, AutoRclone

Sync-Google-Shared-Drive-with-AutoRclone
Sync-Google-Shared-Drive-with-AutoRclone
Sync-Google-Shared-Drive-with-AutoRclone

1. python을 설치하고, rclone, AutoRclone을 다운로드한 다음 이 둘을 하나의 폴더에 압축 해제한다. AutoRclone은 [Code]를 클릭하여 파일을 다운로드해야 한다.

Sync-Google-Shared-Drive-with-AutoRclone

2. rclone 폴더에서 명령 프롬프트 창을 열고 다음 명령어를 순차적으로 실행.

python --version (python이 제대로 설치되었나 확인)

pip install –r requirements.txt (pip 설치)

python –m pip install --upgrade pip (pip 업그레이드)

Sync-Google-Shared-Drive-with-AutoRclone

3. 아래 링크로 이동해 [Enable the Drive API] 클릭. 프로젝트 이름은 아무거나 해도 무방하지만, 일단 기본으로 주어지는 [Quickstart]로 사용. 그리고 [DOWNLOAD CLIENT CONFIGURATION]을 클릭하여 credentials.json 파일 다운로드. 그리고 이 파일을 rclone 폴더로 복사.

https://developers.google.com/drive/api/v3/quickstart/python

• 2021/04/09: 기존에 이미 이 모든 과정을 완성한 사용자는 상관이 없지만, 신규 사용자는 요 3번 과정이 매우 번거롭게 되었다. 이 과정은 새로 작성한 「구글 클라우드 플랫폼 프로젝트 생성 및 API 활성화」 글을 참고하고, 새 구글 계정 만들어서 테스트해 본 결과 서비스 계정 생성까지 변동사항은 없었다.

Sync-Google-Shared-Drive-with-AutoRclone

4. 명령 프롬프트 창에서,

python gen_sa_accounts.py --list-project

명령으로 좀 전에 생성한 프로젝트 리스트를 확인하려고 하면, [Quickstart] 앱에 대한 인증을 요구한다(앞으로도 이런 과정을 몇 번 더 거치게 되니 유의하자).

위 사진처럼 명령 프롬프트 창에 있는 인증 링크를 복사하여 웹브라우저로 이동.

Sync-Google-Shared-Drive-with-AutoRclone

5. [확인되지 않은 앱]이라는 경고가 나오면서 이동을 가로막지만, 어찌 되었든 우리는 사용을 해야 하니 무시하고 위 사진처럼 권한을 부여한다. 그렇게 해서 얻은 인증 코드를 명령 프롬프트 창에 붙여넣고 Enter!

Sync-Google-Shared-Drive-with-AutoRclone

6. 이번에는 [Service Usage API]을 요청하는 링크가 나온다.

앞에서와 마찬가지로 링크를 웹브라우저로 붙여넣은 다음 [Service Usage API]을 [사용]으로 변경하고, 웹브라우저의 새로 고침이 완료되면 다시 명령 프롬프트 창으로 이동하여 [Enter]를 눌러 재시도한다. 그러면, quickstart-xxxxxxxxxxxxx라는 프로젝트 이름이 보여야 한다.

사용자 경험에 따라 다른 프로젝트 이름도 보일 수 있지만, 상관없으니 나머지 프로젝트는 무시하자(AutoRclone에 사용할 프로젝트는 하나면 된다. 그 이상 사용하면 구글로부터 불이익을 받을 수 있다고 한다).

Sync-Google-Shared-Drive-with-AutoRclone

이제 서비스 계정(SA)을 생성할 차례다. 명령 프롬프트 창에서,

python gen_sa_accounts.py --create-sas quickstart-xxxxxxxxxxxxx

을 입력하면, 앞에서처럼 또 뭔가를 요구한다. 위 사진처럼 URL을 잘 찾아낸 다음 웹브라우저로 이동하여 [Identity and Access Management (IAM) API]를 [사용]으로 설정한다.

앞의 서비스 계정 생성 명령을 다시 실행하자.

서비스 계정을 트래픽 우회 용도로 사용하는 것에 대한 감시와 제재가 있으므로 「구글 드라이브 API SA(서비스 계정) 제한과 우회 방법」 글을 참고하여 수동으로 서비스 계정을 생성하고 키를 [accounts] 폴더로 다운로드하자. 5개 정도가 적당.

Sync-Google-Shared-Drive-with-AutoRclone

서비스 계정 생성이 성공했다면,

python gen_sa_accounts.py --download-keys quickstart-xxxxxxxxxxxxx

명령으로 서비스 계정의 ID 키를 다운로드 한다. 다운로드가 성공하면, 위 사진처럼 [accounts] 폴더 안에 100개의 서비스 계정 키 파일이 존재하게 된다.


여기까지 성공했다면, 99% 성공한 것이나 진배없다.

이제 다음 페이지에서 나머지 과정(구글 그룹스을 생성하고, 이 그룹스에 앞에서 생성한 서비스 계정 100개를 그룹원으로 추가하고, 공유 드라이브 멤버에 그룹스를 추가하고, 마지막으로 동기화 프로세스를 시도하는 작업)을 진행하겠다.

1 2

폴더, 혹은 누군가 공유해준 자료를 내 공유 드라이브나 내 공유 드라이브의 특정 폴더로 복사 및 동기화하고 싶다면, 해당 폴더로 들어가서 URL 주소 중

https://drive.google.com/drive/u/2/folders/xxxx

에서 xxxx를 공유 드라이브 ID로 사용하면 된다.

만약 위 방법이 다소 어렵다면, 「간단한 구글 공유 드라이브 대 드라이브 복사 도구」를 사용할 수 있다. 그러나 이 방법은 서비스 계정(SA)이 아니라 구글 계정을 이용하기 때문에 750GB 제한에서 벗어날 수는 없다.

좀 더 편리한 자동 동기화 기능을 원하면, 「오라클 VPS를 구글 공유 드라이브 자동 동기화 기계로 활용」 글 참고.


팁 하나 더!

AutoRclone의 기본 모드는 복사(copy) 모드다. 이것을 동기화 모드(sync)로 수정하고 싶다면, rclone_sa_magic.py 파일을 수정하면 된다.

rclone_cmd = "rclone --config {} copy ".format(config_file)

에서 ‘ copy ’를 ‘ sync ’로 변경하면 된다.

이렇게 하면 소스 공유 드라이브에서 삭제한 파일은 목적 공유 드라이브에서도 삭제된다.

비록 보잘 것 없지만 광고 수익(Ad revenue)은 블로거의 콘텐츠 창작 의욕을 북돋우는 강장제이자 때론 하루하루를 이어주는 즐거움입니다

Share:

댓글 93개:

  1. 아 ! 역시 대단 하십니다
    제가 본 어떤 autorclone 설명보다 완벽합니다

    부디 이좋은 게시글로 많은 사람들이 autorclone을 사용 했으면
    좋겠습니다.

    답글삭제
    답글
    1. 이게 다 tosh님 덕분입니다. 앞으로도 잘 부탁합니다.

      삭제
  2. 그룹을 만들수 없다고 나올땐 어떡해야하나요?

    답글삭제
    답글
    1. 아 그룹명이 너무 짧아서 그랬던거 같습니다.

      삭제
    2. 그룹스까지 하셨다면 성공하신 것 같습니다.

      삭제
  3. 우와~ 굿... 대박입니다... 정말 감사드려요..

    그리고요
    내 드라이브에서 공유드라이브로 폴더 이동은 안될까요?

    답글삭제
    답글
    1. 해보진 않았지만, 똑같은 방법으로 될 것 같습니다.
      https://drive.google.com/drive/u/2/folders/xxxx
      내 드라이브(혹은 폴더)의 xxxx만 알면 그만이지 않겠습니까?

      삭제
  4. 일단 믿고 따라서 성공했습니다. 글이 너무 참신합니다.
    정말 대단한 노고에 감사드립니다.

    답글삭제
  5. 그룹까지 100명 다 추가했는데 그 다음부턴 어떻게 하면 되나요? 구글드라이브 들어가니 15g 기본 내 메일함 밖에 안보여요...

    답글삭제
  6. 다른사람인 a라는 사람이 공유한 홍길동 폴더를 그대로 내 pc에 있는 d:드라이브 하드에 옮기고자 합니다. 그러면 어떻게 하면 되나요?

    답글삭제
    답글
    1. 이 팁은 구글 공유 드라이브를 가진 사람만 사용할 수 있습니다. 본문 하단 「구글 팀 드라이브 무료 생성」 참고하세요.

      삭제
  7. 2단계 cmd창에서부터 버전확인이나 업그레이드가 안되네요. pip 설치는 되었습니다만 ㅜㅜ

    답글삭제
  8. 구드가 현재 트래픽 문제가 있는거 같네요 ㅠㅠ

    답글삭제
    답글
    1. 파일당 2TB 트래픽 제한이 걸립니다. 오늘 올린 글을 참고하세요.

      삭제
  9. 혹시나 4번에서 ModuleNotFoundError: No module named 'google_auth_oauthlib 이란 오류가 나온다면 pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib 명령어를 실행한 뒤 다시 시도해 보시기 바랍니다ㅎㅎ

    답글삭제
    답글
    1. 소중한 경험을 공유해주셔서 고맙습니다.

      삭제
  10. 마지막 13번에서 No connection could be made because the target machine actively refused it. 에러가 나오는데 어디가 잘못된 것일까요?

    답글삭제
    답글
    1. 공유 자료가 일일 대역폭 제한에 걸린 것 같습니다.

      삭제
  11. 그룹스회원 추가후 시간이 좀 지나야 작동하네요.
    바로 동기화시켰더니 계속 오류나서 한참 고민했습니다. ㅎ
    폴더째 동기화도 잘 되고 속도도 좋네요.

    친절하고 세세한 메뉴얼 너무 감사합니다.
    복받으실겁니다.

    답글삭제
    답글
    1. 네. 공유 드라이브끼리 복사는 2TB 제한이 적용되지 않는 것 같습니다.

      삭제
    2. 공유드라이브끼리 복사인 데 잘 작동하다가 어느 순간부터 안됩니다.
      dst010: reading source/destination | checks: 0 files
      에서 멈춰서 있네요.
      대략 2테라에서 2.5테라 정도 복사가 된 거 같은 데 이 것도 하루 제한이 있나 모르겠습니다.
      내일 다시 테스테 해봐야 알 수 있겠네요.

      삭제
    3. 그룹스에 서비스 계정 몇 개 가입되어 있나요? b 옵션을 변경해서 다른 서비스 계정으로 작업을 시작해 보세요.

      삭제
    4. 100개 다 가입해 놨습니다. 넉넉하게 -b 20 번에서 테스트해도 동일한 증상이네요.
      뭔가 제한이 걸렸다면 connection failed 나 어떤 에러메세지라도 떠야 될 텐 데
      dst020: reading source/destination | checks: 0 files
      딱 이자리에서 먹통입니다.
      ㅡㅡ

      삭제
    5. 혹시나 에어익스플로러로 복사했더니 그건 잘 됩니다.
      공유 드라이브끼리 복사는 2TB 제한이 없는 게 맞는 거 같습니다.
      도무지 잘 되다가 안되는 게 이유를 모르겠네요.

      삭제
    6. 수박 겉핥기식으로 사용법만 간신히 익힌 수준이라 딱히 드릴 말씀이 없네요. 일단 24시간 후 나머지 동기화가 진행된다면 다행입니다.

      삭제
    7. 수박 겉핥기라뇨 ㅎ 처음 접한 유저도 너무 쉽게 따라 할 수 있는 완벽한 메뉴얼입니다.
      관한 검색을 다 해 봤는 데 한글 메뉴얼로는 다롱님 게시글이 유일무이합니다.

      우선 오토알클론 자체는 이상이 없습니다. 메뉴얼은 완벽하단 거죠.
      24시간 이후 실행하니 정상적으로 동기화가 잘 됩니다. 다만 어제와 같이 3계정을 넘어가니 멈추더군요. 계정당 735기가 복사가 되니 2테라 정도입니다. 구글에서 서비스 계정에도 제한을 둔 거 같아요. 제한이 없다고 착각했던 건 로그인되는 실제 계정과 가상계정인 서비스 계정과 구분을 못해서였네요. 알클론도 제한을 둘거라는 소식?루머를 얼핏 봤었는 데 실제 제한을 한 거 같습니다. 할당량에 대한 유료정책인 거 같아요. 내일도 같은 증상이면 제한을 둔게 확실하다 확신해도 될 거 같습니다.

      좋은 정보들 감사합니다.

      삭제
    8. 아닐 수도 있겠네요 ㅡㅡ
      금방 구글 클라우드 플랫폼에 접속해 보니 상태알림 쪽에 계속 정상상태 메세지뿐이었는 데
      신규메세지가 들어와 있네요.

      Description: Mitigation work is currently underway by our engineering team.

      We do not have an ETA for mitigation at this point.

      We will provide more information by Tuesday, 2020-09-22 03:30 US/Pacific.

      Diagnosis: Customers affected by this issue receive a blank page, or an error message, when trying to access Big Query via the Cloud Console.

      Workaround: Where possible, customers can use the API to acces Big Query directly.

      공교롭게 동기화가 끊긴 시간과 일치합니다. - 미서부시간 기준이니
      최근 구글 서버 관련 작업이 완전히 이루어지지 않아서 일 수도 있겠네요.
      다 해석하셨겠지만.. 현재 구드에 드라이브간 빅쿼리 액세스 관련 문제가 있고
      해결 작업 중이라니 이삼일 테스트로 결론낼 건 아닌 거 같네요 ㅎ

      삭제
    9. 참고로 rclone_sa_magic 스크립트의 기본값은 3회 시도입니다. 만약 [b – 01] 옵션으로 작업을 시작했다면, 01 SA부터 03 SA까지 세 번 스크립트를 시도하라는 뜻입니다. 3번 시도 후 자동으로 멈춥니다.

      삭제
    10. 작업창 메세지를 보며 판단했던 건.. 작업이 더 이상 진행되지 않고 오류값을 리턴했을 때 또는 작업이 완료되었을 때 정확히 완료되었는 지에 대한 검증을 3회 시도를 더해라.. 란 의미로 이해하고 있었어요. 스크립트 자체는, 오류가 없을 시 연속적으로 실행을 하라고 작성이 되어 있을 거 같아요. 그래야만 -e 100 이란 구문이 의미를 가질 수 있으니까요.
      재실행을 하면 심지어 재부팅까지 하고 재실행을 해봐도 3회 시도는 커녕 딱 1회에서 멈추는 건
      서버에서 제대로 된 응답을 안하기에 리턴값을 계속 기다리고 있는 걸 텐 데..
      할당량 제한이거나 구드 서버 자체 문제거나 둘 중 하나란 생각이네요.

      여튼 한 주 정도 지나면 확실한 답이 나올 거 같아요.

      삭제
    11. 아, 그렇군요. 그런데 만약 내 공유 드라이브 간에도 2TB 제한이 있다면, 90개 넘는 서비스 계정은 무용지물이겠군요.

      삭제
  12. 작성자가 댓글을 삭제했습니다.

    답글삭제
    답글
    1. 답글 위치가 잘 못 되서 삭제하고 제대로 된 위치에 다시 달았어요.
      특이하네요. 삭제되었단 댓글이 표시가 되구

      삭제
  13. 4번 진행하고 링크주소 복사해서 들어가면
    /apis/api/serviceusage.googleapis.com/overview?project=rgd1-1xxxxxxxxxxxx 로드 중에 오류가 발생했습니다.

    다음 필수 권한 중 하나 이상이 없습니다.
    프로젝트

    resourcemanager.projects.get
    serviceusage.services.get
    프로젝트 ID가 유효하고 액세스 권한이 있는지 확인하세요

    이렇게 나오는데 뭐가 문제인걸까요?

    답글삭제
    답글
    1. 그 권한을 부여하는 작업인데 말입니다. 혹시 앞선 작업과 구글 계정이 일치하나요?
      제가 방법에 대한 깊은 이해는 없어 홈페이지에 있는 설명에서 벗어나면 도와드리기가 어렵습니다. 차근차근 다시 확인해 보세요.

      삭제
  14. 안녕하세요 최근 팀드삭제이슈 때문에 백업을 하면서 많은 참조를 했습니다.

    그런데 저는 마지막에 dst0001 : reaing source/destination | checks : ~~~ files 에서

    정지 상태이네요 checks 파일이 올라가는거로 봐서 읽고있는가 보다 하고 지켜봤는데

    일정 수 까지 올라가고 나서 반응이 없네요 대략 7테라 정도 되는 용량이라 커서 그런가 하고

    다른 백업본을 해봤는데도 동일증상이네요 혹시 이방법이 현재 작동하고 있지 않는걸까요?

    답글삭제
    답글
    1. 서버에서 막은 것일 수도 있습니다.
      저도 지금 한두 군데가 안 되는 것 같습니다. 그리고 되는 곳은 또 됩니다.
      주말이 지난 다음 다시 해보시거나 소스 공유 드라이브의 자료를 에어익스플로러를 이용해 다른 공유 드라이브로 이동한 다음 해보세요.
      전 샌프란시스코 대학 공유 드라이브가 자료는 살아 있는데 파일 다운로드(업로드는 됨)만 안 되길래 모든 자료를 다른 공유 드라이브로 이동(잘라내기 and 붙여넣기)했습니다.

      삭제
    2. 지금은 안 되던 곳도 되네요. 제 경우엔 일시적인 서버 오류였던 것 같습니다.
      소스 공유 드라이브에서 아무 파일이나 다운로드해 보세요. 업로드는 되지만, 다운로드만 막은 경우도 있습니다.

      삭제
    3. 감사합니다. 에어로 동기화 하다가 답변보고 재시도 해봤는데 용량이랑 속도가 나오는거로 봐서는 동기화 되고있는거 같습니다.

      혹시 동기화 방식 알고계신가요? 에어처럼 동일파일 있으면 건너뛰는지 덮어쓰는지를 모르겠네요.

      삭제
    4. 같은 파일은 건너뜁니다.
      참고로 리눅스 조금 사용할 줄 아시면, ─ 저도 엊그제 세팅하여 지금 테스트 중입니다만 ─ 오라클 VPS를 이용해 내 컴퓨터 켤 필요 없이 자동 동기화 스케줄러도 사용할 수 있습니다.

      삭제
    5. 제경우 이상하긴한데 동기화 끝나고 에어로 한번더 동기화 했는데 중간중간 빠진파일들이 있네요. 그래도 생각보다 시간이 많이 단축되어서 ㅎㅎ 좋은 글 감사합니다.

      삭제
  15. 하라는대로 해서 성공했습니다 감사합니다
    그런데 구글계정1에 서비스 계정 100개를 만든 상태에서 구글계정2에 같은 작업을 하려면 똑같이 하면 되나요? credentials.json 을 생성하면 이미 구글계정1에서 작업한 동일 이름의 파일이 있는데 이전의 것을 삭제해야 되는지 아니면 credentials(2).json 이런식으로 새 것의 이름을 변경해야 되는지 뭔가 충돌은 없는지 궁금합니다

    답글삭제
    답글
    1. [구글계정1] 작업한 폴더가 아닌 새 폴더 생성해서 처음부터 새로 하시면 됩니다. 즉, 구글 계정마다 폴더를 만들어서 사용하시면 됩니다.

      삭제
    2. 아 기존의 rclone폴더는 두고 rclone을 새로 다운받아 폴더를 계정마다 추가하라는 말씀이시죠? 감사합니다

      삭제
  16. 그리고 python rclone_sa_magic.py -s xxxx -d yyyy -b 1 –e 100 여기서는 적용 되는게 서비스 계정만 해당되는 건가요?
    팀드라이브에 그냥 일반계정이 10개 추가되어 있는 상태에서 그룹스 추가로 계정 100개를 추가하면 일반계정은 사용하지 않고 서비스 계정만 쓰는건지 아니면 다 포함해서 팀드라이브에 추가된 계정 이름순대로 100개의 계정으로 작업하는지 알고 싶습니다
    또 그룹스1로 100계정 추가한 상태에서 그룹스2를 추가했을때 -b 1 –e 200으로 하면 그룹스1의 계정들이 먼저 카피작업에 쓰이고 그 다음 그룹스2에 계정들이 작업하는지
    작업되는 순서가 어떤식으로 적용되는지 궁금합니다

    답글삭제
    답글
    1. 위 과정에서 생성한 100개의 서비스 계정만 사용합니다. 서비스 계정을 더 만들 수 있지만, 제작자가 권장하지 않습니다.

      삭제
    2. 네 욕심부리지 않고 여기까지만 해야겠습니다 감사합니다

      삭제
  17. >> Let us go dst001: 10:06:33
    dst001: reading source/destination | checks: 0 files

    여기서 넘어가질않네요
    2테라 정도 자료인데
    막힌건가요?
    아님 오래걸리는건가요?

    제 드라이브에는 폴더만 하나 카피되었습니다.

    답글삭제
    답글
    1. 그런 경우는 (둘 중 하나) 대역폭 제한에 걸렸을 확률이 높습니다. 나중에 다시 해보세요.

      삭제
  18. 3번에

    https://developers.google.com/drive/api/v3/enable-drive-api 링크 들어가면

    [Enable the Drive API] 이게 없는데요... 2번까지는 다 잘됐는데.. 여기서 막히네요 ㅜㅜ

    게다가 step 1:turn on the 이게 아닌

    Step 1: Install the Google client library

    이렇게 링크 들어가면 뜨는데 뭔가 잘못된건가요???

    답글삭제
    답글
    1. 3번 과정에 대해선 새 글을 참고하세요.

      삭제
  19. 공유드라이브끼리 복사도 2TB일제한 걸리는 거 같아요ㅜ 동일계정에 공드A→공드B로 copy 작업이고, SA는 넉넉하게 100개씩 등록해놨는데, 딱 2TB지점에서 User Rate Limit Exceeded 뜨네요.
    다른 분들도 그런지 혹시 확인 가능한가요?

    답글삭제
    답글
    1. 아, 2TB 조금 넘어가니 안 되네요.

      삭제
    2. 오후 7시엔 파일 복사가 안 되는 듯하다가 지금 확인해 보니 그 이후에 파일이 복사된 것들이 있습니다(제 컴에서 작업하는 것이 아니고 오라클 VPS에서 Autorclone을 돌리고 있습니다. 그래서 확인이 늦습니다). 공유 드라이브마다 다른 것 같습니다.

      삭제
    3. 현재 gclone 돌리고 있는데 새롭게 확인된 사실이 있습니다.
      "소스"공드 단에서 하루 5TB 제한이 걸리네요ㅜ

      앞서 확인된 공드 2TB 일제한을 무력화하기위해 복수의 구글계정을 활용하던 중이었는데요,
      일단 어차피 계정 1개당 한도가 2TB니 SA는 3개씩만하고, 구글계정은 3개씩 총 9개의 SA를 소스공드와 도착공드에 각각 등록해놓고 돌리고 있었습니다.
      좀 번거롭게도 복사 폴더를 2TB씩 3개로 나누고 gclone도 3번 나누어 돌릴 수 밖에 없지만, 이렇게 하면 확실히 2TB는 무력화됩니다.
      그런데 이 방법마저도 복사 총 용량 5TB쯤에서 한도가 걸려버리네요.
      (2TB 폴더 두개는 완료되고 마지막 폴더는 1TB 쯤에서 막힘)

      좀 더 확실히 해볼려고 SA랑 계정 수도 늘려보고
      한 일주일간 여러 방식으로 테스트해봤는데,
      매일 여지없이 딱 5TB 지점에서 막혀버립니다.

      소스드라이브단에서 5TB가 걸리는 거라 이건 무슨짓을 해도 절대로 무력화가 안됩니다
      심지어 5TB를 다 소진한 뒤, 완전 새로운 제4의 계정을 작업 공드들에 새롭게 등록하고 그 계정으로 로그인하고 복사를 시도해도 바로 user limit이 걸려버리네요(웹브라우저, air exlporer 등 작업환경을 막론하고 칼같이 막힘)

      총 작업할 용량이 40TB쯤 되는데 백업완료하려면 최소 일주일은 넘게 걸리네요
      예전같으면 반나절이면 뚝딱이었는데ㅜ

      그래서 이왕 이렇게 된거 공드를 여러 개 파서 3중,4중 백업을 하루에 병렬적으로 작업중입니다.
      "소스"단에서 5TB기때문에 복사받은 공드를 또 소스로 삼아서 다음 공드에 복사해주는 식으로요.
      어차피 내년에 edu발 공드들도 다 숙청당할 테지만 최소한 그때까지만이라도 버티다가 로컬하드로 갈아탈 수 밖에 없을 거 같습니다ㅜ

      삭제
    4. 구드로 자료를 공유받을 때 예전보다 트래픽 제한이 더 빨리 걸리는 감이 있었는데, 역시 그랬었군요. 좋은 정보 알려주셔서 고맙습니다.

      삭제
  20. 안녕하세요. 정보 디테일하게 공유해주셔서 감사합니다. 왕초보다 잘 따라할 수 있어서 너무 감사해요.
    과정을 진행하나 하나 막혀서 질문글 남깁니다.
    다름이 아니라 새글을 통해 3번을 진행하고 4번으로 넘어가서 저의 프로젝트까지는 나오는걸 확인했습니다. 그런데 그다음 6번으로 'Service Usage API 를 요청하는 링크가 나와야하는데 안나오더라구요. 그래서 quickstart-xxxxxxxxxxxx라는 프로젝트 이름을 확인할 수가 없네요. 제가 놓친 부분이 있는걸까요? 아니면 뭔가 달라진걸까요? (혹시나해서 스크린샷의 주소를 따서 https://console.developers.google.com/apis/api/iam.googleapis.com/overview?project=12자리 제번호' 를 웹페이지에 붙여넣어서 Identity and Access Management (IAM) API 사용 설정까지는 했습니다.)

    답글삭제
    답글
    1. 3번 과정이 바뀐 것처럼 그 이후도 바뀐 것 같습니다. 혹시 서비스 계정 생성은 되나요?
      만약 제가 해결하게 되면 본문을 업데이트하겠습니다만, 본문 이상은 저도 모르므로 장담할 수는 없습니다.

      삭제
    2. 새 계정 만들어서 해봤는데, 3번 이후는 서비스 계정 생성까지 바뀐 것이 없습니다.
      프로젝트 이름을 잘 확인하시기 바랍니다.

      삭제
    3. 헉.. 바뀐게 없군요... 저도 두번이나 해봤는데.. ㅠㅠ 다시 한 번 시도해 보겠습니다. 귀찮으실텐데 이렇게 도와주셔서 감사합니다!

      삭제
  21. 설치 후 Disable path length limit가 안떠서 시작도 못하고 있네요 ㅜㅜ

    답글삭제
  22. 정리를 너무 잘해주셨군요. 덕분에 잘 배우고 갑니다.

    답글삭제
  23. 안녕하세요.
    블로그 보면서 여러가지로 공부 하면서 도움이 많이 되고 있습니다. 감사합니다.

    더불어 하나 여쭤볼게있습니다.
    이 게시글에 있는 autorclone 자체는 동작이 잘 됩니다.
    다만 속도가 처음에 70mb/s부터 시작해서 점차 떨어지더니 1시간이 지나니 10mb/s 아래로 내려가더라구요.
    원래 이런건지,, 잘몰라서 여쭤봅니다.
    뭔가 잘못한게 있어서 이러는 걸가요?

    답글삭제
    답글
    1. autorclone Server-Side Copy 방식으로 전송 속도는 사용자 컴퓨터 사양과는 상관이 없습니다. 하지만, PC의 하드 디스크에서 하드 디스크로 파일 복사하는 것처럼 큰 파일은 전송 속도가 빠르고, 작은 파일은 전송 속도가 느리긴 합니다.

      삭제
  24. 안녕하세요 문의 하나 드립니다.
    1. 오토 알클론 실시간으로 로그 화면을 같이 볼수는 없느건가요?
    2. 오토 알클론으로 전송하다가, 리미트로 전송이 중단된경우, 다시 실행하면 이어 올리가가 되는건지 ? 아니면 다른 옵션이 따로 있나요?

    답글삭제
    답글
    1. 1. 로그는 지원하지 않는 것 같습니다.
      2. 위 본문에는 SA(서비스 계정) 100개를 사용했습니다. 예를 들어 1번 SA로 전송하다 제한에 걸리면 자동으로 다음 계정으로 이어서 작업이 진행됩니다. 이런 식으로 모든 전송이 완료될 때까지 100개의 계정을 이용합니다. 그래서 750GBx100=75TB라는 등식이 성립되는 겁니다. 75TB는 초창기에만 그랬었고 지금은 하루 전송량이 계정당 2TB인가? 5TB인가로 묶여서 소용없지만 말입니다.

      삭제
  25. 4. 명령 프롬프트 창에서,

    python gen_sa_accounts.py --list-project

    명령으로 좀 전에 생성한 프로젝트 리스트를 확인하려고 하면, [Quickstart] 앱에 대한 인증을 요구한다(앞으로도 이런 과정을 몇 번 더 거치게 되니 유의하자).

    위 사진처럼 명령 프롬프트 창에 있는 인증 링크를 복사하여 웹브라우저로 이동.

    이 내용에서 구글 인증하면 승인 오류가 뜹니다...
    403 오류: access_denied
    The developer hasn’t given you access to this app. It’s currently being tested and it hasn’t been verified by Google. If you think you should have access, contact the developer (seo------@gmail.com).
    이 섹션의 콘텐츠는 앱 개발자가 제공한 것입니다. 이 콘텐츠는 Google에서 검토하거나 확인하지 않았습니다.
    앱 개발자라면 이 요청 세부사항이 Google 정책을 준수하는지 확인하세요.
    access_type: offline
    response_type: code
    redirect_uri: urn:ietf:wg:oauth:2.0:oob
    state: jOr6nnEi4zUOzdjVlXlMC0YrLUgKzc
    prompt: consent
    client_id: 1023557275276-jmomsbtgi813ifbnm7l88g7e5etccqoi.apps.googleusercontent.com
    scope: https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/iam

    해결방법 알수있을까요?

    답글삭제
    답글
    1. 4번하고 5번 사이 그림 참고하시면 될 것 같은데....

      삭제
    2. 제가 이해를 못한건지 모르겠는데
      크롬이나 엣지 접속해보아도 "[확인되지 않은 앱]"이라고 뜨진않고 바로 구글 로그인창뜨구요...
      혹시나 캐시문제일까봐 시크릿모드에서도 로그인해봤습니다.
      구글 로그인창까진 뜨고 로그인하면 첫번째 댓글처럼 오류가 뜹니다...
      python --version (python이 제대로 설치되었나 확인) pip install –r requirements.txt (pip 설치) python –m pip install --upgrade pip (pip 업그레이드)
      위 명령어 입력하였고
      credentials.json파일도 AutoRclone-master안에 보관하였구요...

      삭제
    3. 구글 로그인된 상태에서 해보세요.

      삭제
    4. 로그인되기전이나 그 후나 동일합니다...

      삭제
    5. 저도 설명서대로만 따라 하는 수준이라 더는 말씀드릴 것이 없습니다. 오류 내용을 참고로 검색하셔서 문제를 직접 해결하시는 수밖에 없을 것 같네요. 아니면, 다른 구글 계정으로 처음부터 다시 해보시는 것도 괜찮을 것 같습니다.

      삭제
  26. 넘 유용하게 잘 봤슴다...sync의 개념이라는 게...sync를 실행할 때마다 원본 폴더에서 새로 추가된 파일 (폴더)들만 추가로 업데이트 시켜주는 거 맞나여...??그렇다면 원본 폴더에서 삭제된 자료가 있다면 그때 동기화를 시켜주면 타겟 폴더에서도 사라져버리는 건지여...

    답글삭제
    답글
    1. 네. 소스(원본)에서 삭제된 파일은 타겟(목적)에서도 삭제됩니다.

      삭제
  27. 안녕하세요
    올려주신 방법대로 따라해보니 4번까진 잘 됐는데 5번에서 막힙니다 ㅠ
    얻어낸 인증 코드를 명령 프롬프트 창에 넣고 엔터를 쳤더니 Service Usage API를 요청하는 링크가 나오지 않고

    Projects (1):
    quickstart-329604

    두 줄만 나온 후 다시 커서가 깜빡거려요.
    파이썬 삭제 후 재설치를 해도, 시도한 계정 말고 새로운 계정으로 해도 마찬가집니다.
    혹시 설치 방법이 변경된 걸까요?

    답글삭제
    답글
    1. 프로젝트 이름이 나오면 정상입니다. 그 다음 단계 진행하면 됩니다.

      삭제
  28. 먼저 감사하단 말씀 드리고 싶습니다. 알려주신 방법 덕에 오토 알클론 설치 성공했습니다. ^0^
    다만 한 가지 질문 드릴 점이 있어요.

    서비스 계정 생성 후 말씀해주신 명령어를 넣으면 다운로드를 시작해 [accounts] 폴더 안에 100개의 서비스 계정 키 파일이 추가된다고 말씀하셨습니다.
    그런데 막상 제가 다운 받은 걸 확인해보니 1000개의 파일이 추가됐더군요.
    어떻게 된 일인지 몰라 [console.cloud.google.com] 쪽을 이것저것 눌러보니까 [IAM 및 관리자] -> [서비스 계정]이란 게 있어서 확인해보니 서비스 계정 자체는 100개만 추가된 건 맞았습니다.
    다만 [키 관리]로 확인한 결과 서비스 계정 1개당 키가 10개씩 생성됐더군요. 그래서 1000개의 키가 다운 받아진 거였습니다.

    여기서 질문입니다.
    계정 1개당 키가 10개씩 생성되도 문제가 없을까요? 아니면 계정 1개당 키가 1개씩 되도록 나머지 9개는 지워줘야 하는 걸까요?
    전 singingdalong 님께서 「구글 드라이브 API SA(서비스 계정) 제한과 우회 방법」에 적힌 방법을 사용할 것이기에 한 계정에 5개의 서비스 계정만을 사용해 계정당 트래픽을 4테라 이하로 만들 생각인데, 서비스 계정당 키가 10개라서 트래픽도 10배가 되거나 하진 않을까요?

    답글삭제
    답글
    1. 일단 성공하셨으니 복습하는 셈 치고 기존 프로젝트와 서비스 계정 모두 삭제하고 새로 하는 방법도 있습니다. 서비스 계정 생성할 땐 본문 방법으로 하면 자동으로 100개가 생성되니 수동으로 5개 생성하고, 각각 SA의 키를, 즉 json 파일은 [accounts] 폴더로 받아두면 됩니다.
      한 SA에 키 10개가 생성되면 기존 9개의 키는 무용지물입니다.

      삭제
  29. 잘 따라하긴 했습니다

    6. 이번에는 [Service Usage API]을 요청하는 링크가 나온다.
    여기서 한참 삽질했내요
    어디서 quickstart-xxxxxxxxxxxxx x숫자를 찾나 한참 찾았내요

    python gen_sa_accounts.py --list-project 그냥 여기서 나온 이름 이내요
    Projects (1):
    my-project-trans-api-731453
    python gen_sa_accounts.py --create-sas my-project-trans-api-731453

    그리고 회원 추가 하려고 하는데 회원 추가가 안되더라구요
    오류 발생
    사용자 1명이 조직 구성원이 아닙니다. 그룹 또는 조직 설정으로 인해 이 그룹에는 조직 사용자만 추가할 수 있습니다. 그룹 소유자 또는 도메인 관리자에게 문의하여 도움을 받으세요.
    이거 일일 사용량 다 사용해서 나온거 맞나요? ()다사용했긴 했습니다)

    답글삭제
    답글
    1. 아, 미처 이 글은 수정하지 못했네요. 본문 서문에 링크한 「구글 드라이브 API SA(서비스 계정) 제한과 우회 방법」에서 '서비스 계정 액세스 관리' 부분을 참고하세요. 수동으로 서비스 계정 5개 정도만 생생해서 키를 다운받아 [accounts] 폴더에 넣고 사용하면 됩니다.

      삭제
    2. 그룹스 생성할때 할때 원래 계정으로 생성해서 추가가 안되던 것이 였네요
      googlegroups.com 그룹으로 만드니 잘 등록됩니다.
      아이디 등록할때 한번에 80개도 가능하더라구요
      처음에 10개씩 하다가 그냥 80개 해보니 다 등록 되어습니다

      설정 완료하고 복사 명령해 보니 아래와 같이 에러가 나서
      싹 지우고 처음부터 새로 만들어 봤는데도 같은 에러가 났습니다.
      2021/11/11 17:44:35 Failed to rc: connection failed: Post "http://localhost:5572/core/stats": dial tcp [::1]:5572: connectex: No connection could be made because the target machine actively refused it.
      2021/11/11 17:44:38 Failed to rc: connection failed: Post "http://localhost:5572/core/stats": dial tcp [::1]:5572: connectex: No connection could be made because the target machine actively refused it.
      2021/11/11 17:44:40 Failed to rc: connection failed: Post "http://localhost:5572/core/stats": dial tcp [::1]:5572: connectex: No connection could be made because the target machine actively refused it.

      근데 위 에러가 나도 복사는 되어 있더라구요
      로컬에서 공드로 복사, 공드에서 공드로 복사, 공드에서 공드 다 오류는 나는데 복사는 되어 있었습니다

      삭제
    3. 에러가 아니라 원래 그렇습니다. 복사할 자료가 없거나 이미 있어 복사할 필요가 없으면 그렇게 나옵니다.

      삭제
  30. 안녕하세요.
    문의 좀 드려도 될까요?
    서비스 계정까지 생성했습니다.

    key 다운이 안되네요.
    python gen_sa_accounts.py --download-keys ssj

    웹페이지에서 수동으로 1개씩은 생성됩니다.
    문제가 뭔지 알 수 있을까요?
    감사합니다.


    아래래는 오류 메세지입니다.
    PS I:\clone> python gen_sa_accounts.py --download-keys ssj
    Downloading keys from ssj
    Traceback (most recent call last):
    File "I:\clone\gen_sa_accounts.py", line 311, in
    resp = serviceaccountfactory(
    File "I:\clone\gen_sa_accounts.py", line 248, in serviceaccountfactory
    _create_sa_keys(iam,std,path)
    File "I:\clone\gen_sa_accounts.py", line 120, in _create_sa_keys
    total_sas = _list_sas(iam,i)
    File "I:\clone\gen_sa_accounts.py", line 93, in _list_sas
    resp = iam.projects().serviceAccounts().list(name='projects/' + project,pageSize=100).execute()
    File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\googleapiclient\_helpers.py", line 131, in positional_wrapper
    return wrapped(*args, **kwargs)
    File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\googleapiclient\http.py", line 937, in execute
    raise HttpError(resp, content, uri=self.uri)
    googleapiclient.errors.HttpError:

    답글삭제
    답글
    1. 수동으로 해서 5개 정도만 사용하세요.

      삭제
  31. autorclon 사용법찾다가 좋은 자료 보고 가네요.
    한가지 궁금한게 autorclone으로 동기화 하다가 하두 대역폭 제한이 걸리면, 다음달 이전 실패한곳부터 다시 동작을 하는건가요?

    답글삭제
    답글
    1. 그런 것은 아니지만, 결과적으론 그렇다고 볼 수 있습니다.

      삭제
  32. 정말 감사드립니다.
    덕분에 잘 쓰고 있습니다.

    현재 5개 서비스계정을 쓰고 있고, 개인 구드에 1TB자료를 올리고 있습니다.
    아직까진 문제 없어 보입니다.

    저희 집 회선이 500M짜리고 54MB/s 속도로 업로드 하고 있습니다.
    최고로 낼수 있는 속도로 업로드 하고 있다는 뜻이지요!
    정말 물건이네요 이거ㅋㅋㅋ



    추가로 다른 분들을 위해 팁을 남기자면,
    rclone_sa_magic.py를 수정하면 AutoRclone이용하면서 crypt remote에 암호화 업로드가 가능합니다.

    191번째 줄 쯤에
    filename_encryption 변수값을 본인 crypt remote type에 맞게 변경하시고 (제 경우는 obfuscate)
    바로 아래 줄에
    password 변수값에 rclone.conf파일에 적혀있는 crypt remote의 password 값을 적어주시면 됩니다.

    그외에도 304번쨰 줄 쯤에서 flag 수정도 가능합니다.
    제 경우는 파일로그로 남기는것 보다 cmd에서 실시간으로 보는것을 선호해서, --progress도 추가해서 사용하고 있습니다.

    답글삭제
    답글
    1. 좋은 팁 고맙습니다. 로그 파일 무시 못 합니다. 예를 들면 제가 사용 중인 오라클 무료 VPS의 저장 공간 전부를 log 파일이 다 차지한 적도 있습니다. 주기적으로 지워줘야 했는데, 로그 파일을 안 남길 수도 있었군요.
      제가 보기엔 요즘은 계정당 하루 2TB 정도의 트래픽(서비스 계정 2개 정도)이 안전선인 것 같습니다.

      삭제
    2. P.S. 공지 부탁드립니다.

      현재 Rclone 1.6.0 버전에서는 AutoRclone 스크립트가 정상적으로 작동되지 않습니다.

      Failed to rc: connection failed: Post "http://[127.0.0.1:5572]/core/gc": dial tcp: lookup 127.0.0.1:5572: no such host

      이러한 오류를 뿜어내는데, 찾아보니 아래의 이유 때문입니다.

      https://github.com/rclone/rclone/issues/6641

      현재 해당 이슈는 해결 되었고, Rclone을 1.6.1로 업그레이드 하면 정상 작동합니다.

      삭제
    3. 전 1.57 버전을 사용 중이라 문제가 없었네요. 안정적으로 잘 작동하면 업데이트는 잘 하지 않는 편이라서요.
      일단 새 버전에선 문제가 해결되었다니 다행입니다.

      삭제

댓글은 검토 후 게재됩니다.
본문이나 댓글을 정독하신 후 신중히 작성해주세요