python을 이용한 구글 드라이브 다운로드 - 대용량, security, 문제 해결 (Bash 사용 가능 및 속도 제한 가능)
curl/wget을 이용한 구글 드라이브 다운로드에는 한계가 있습니다.
먼저 용량의 문제입니다. 용량이 너무 클 경우 실패할 가능성이 높습니다.
그 이유는 security warning 때문인데, 겪어본 사람은 매우 짜증이납니다.
또한, 내 드라이브에 있는 것 뿐만 아니라, 공유되고 있는건까지 생각하다보면 권한의 문제가 발생합니다.
이러한 문제들을 위한 파이썬 패키지가 있습니다. 바로 gdown입니다.
https://github.com/wkentaro/gdown
1. 설치방법
pip install gdown
2. Bash(Command line)에서 사용방법
위의 깃헙 페이지에 가면 다양한 방법이 제공되는데, 제게 가장 편리했던 방법을 소개하고자합니다.
먼저 구글 드라이브에서 공유(Share)를 하고, 그 url을 copy하여 사용하는 방법입니다. 제게는 이 방법이 가장 편리하더라구요!
https://drive.google.com/open?id=1Bvn4NYnCk2G5oTzC_jb8aPeV-ayl6vJzC_-Px0jtsT4
링크 주소를 보면, open?id= 이라고 되어있습니다. 이 부분의 open을 uc로만 바꾸거 입력해주면 됩니다.
$ gdown https://drive.google.com/uc?id=1Bvn4NYnCk2G5oTzC_jb8aPeV-ayl6vJzC_-Px0jtsT4
3. Python 코드에서 사용방법
마찬가지로 open을 uc로 바꾸거 사용해주면 됩니다.
import gdown
url = 'https://drive.google.com/uc?id=0B9P1L--7Wd2vU3VUVlFnbTgtS2c'
output = 'spam.txt'
gdown.download(url, output, quiet=False)
wget을 사용하는 경우 speed limit 옵션을 사용할 수 있지만, gdown에서는 구현이되어있지 않았습니다.
저는 속도 제한이 필요한 환경에 있어서, 이 기능이 너무 필요했습니다. 관련 사항을 issue에 등록하였고, 오늘! 그것이 해결되면서 gdown을 소개하는 글을 쓰는데까지 이르게 되었네요 :)
closed된 해당 이슈는 이것이구요,
https://github.com/wkentaro/gdown/issues/23
gdown <URL> --speed 1MB
--speed 라는 옵션이 추가되었습니다 :)
'✏️ 수동로깅 > dev_log' 카테고리의 다른 글
[파이썬] inspect 모듈의 getsource() 함수- 도큐멘테이션을 안보고 함수 구현부를 빠르게 확인하기 (0) | 2020.02.24 |
---|---|
[파이썬] python subprocess 가 에러 메세지도 없이 죽었다/사라졌다 dmesg (0) | 2020.02.20 |
Jupyter Lab에서 VS Code로 개발환경 이전 (0) | 2020.02.14 |
[Golang] Factory Method Design Pattern - 공장처럼 찍어내는 팩토리 메소드 디자인 패턴 (0) | 2020.02.12 |
[openCV] rows, cols< SHRT_MAX in function 'remap' 에러 해결 (1) | 2020.02.06 |
댓글
이 글 공유하기
다른 글
-
[파이썬] python subprocess 가 에러 메세지도 없이 죽었다/사라졌다 dmesg
[파이썬] python subprocess 가 에러 메세지도 없이 죽었다/사라졌다 dmesg
2020.02.20 -
Jupyter Lab에서 VS Code로 개발환경 이전
Jupyter Lab에서 VS Code로 개발환경 이전
2020.02.14 -
[Golang] Factory Method Design Pattern - 공장처럼 찍어내는 팩토리 메소드 디자인 패턴
[Golang] Factory Method Design Pattern - 공장처럼 찍어내는 팩토리 메소드 디자인 패턴
2020.02.12 -
[openCV] rows, cols< SHRT_MAX in function 'remap' 에러 해결
[openCV] rows, cols< SHRT_MAX in function 'remap' 에러 해결
2020.02.06