보안적인 이슈로 공유링크를 통해서 바로 받을 수 없고, "docs.google.com" 도메인으로 우회해서 다운로드 해야합니다.
0. 구글드라이브 파일의 FILEID가져오기
- 구글 드라이브 (google drive)에 들어가서 다운로드 받으려는 파일을 마우스 오른쪽 버튼을 클릭합니다.
- 링크가져오기
(만약 권한이
제한됨
으로 되어있다면 3, 4 진행)- 권한변경
- 링크 권한모든 사용자로 변경
- 링크 복사
복사 버튼을 얻은 링크에서
d/
와 /view
사이에 있는 값이 파일 아이디(FILEID)입니다.https://drive.google.com/file/d/10UU_Rv4dFdwg32tHyNJ9yuqtbrVo5T_9/view?usp=sharing # FILEID: 10UU_Rv4dFdwg32tHyNJ9yuqtbrVo5T_9
1. Wget
wget --load-cookies ~/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies ~/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id={FILEID}' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id={FILEID}" -O {FILENAME} && rm -rf ~/cookies.txt
위 명령어의
{FILEID}
에 상단에서 얻었던 실제 FILEID를 대치하고, {FILENAME}
에는 원하는 파일 이름을 넣어주시면 됩니다.2. gdown.pl
- 구글 드라이브 big files 다운로드를 위해서 개발자가 만드
gdown.pl
이라는 프로젝트가 있습니다. 이 것을 이용해서도 다운로드를 할 수 있습니다.
- 기본적으로
wget
을 이용하지만 대용량의 파일을 다운 받을 수 있습니다.
gdown.pl
circulosmeos • Updated Aug 30, 2023
3. Cur
curl
명령어도 wget과 비슷하게 쿠키 설정을 조작하여 다운로드 받으실 수 있습니다.#!/bin/bash FILEID=$1 FILENAME=$2 curl -sc ~/cookie.txt "https://drive.google.com/uc?export=download&id=${FILEID}" > /dev/null curl -Lb ~/cookie.txt "https://drive.google.com/uc?export=download&confirm=`awk '/_warning_/ {print $NF}' ~/cookie.txt`&id=${FILEID}" -o ${FILENAME}
먼저 위의 curl 스크립트를 복사하여 실행파일을 하나 만들고, 실행권한 변경한 후 스크립트를 실행해주시면 됩니다.
chmod u+x gdown.sh #실행권한 변경
./gdown.sh {FILEID} {FILENAME} #다운로드 진행
wget vs curl
- wget 과 curl 은 거의 유사하지만 조금 다른 부분이 있습니다.
공통점
- HTTP, HTTPS, FTP 프로토콜을 통해 컨텐츠를 다운로드 하는 커맨트 라인 툴입니다.
- HTTP POST request 를 지원합니다. (즉, 웹사이트로 데이터를 전송할 수 있습니다.)
- HTTP 쿠키를 지원합니다.
- 스크립트처럼 사용자 인터렉션없이 수행될 수 있도록 설계되었습니다.
- 오픈소스이며 무료입니다.
- 90년대에 시작한 프로젝트입니다. (wget 은 1995년, curl 은 1996년에 시작했습니다.)
- metalink 를 지원합니다.
차이점
wget
- 간단하고 직관적입니다.
- 별도의 라이브러리를 지원하지 않습니다.
- 재귀적으로 다운로드합니다.
- 즉, 페이지에 있는 모든 내용이나 FTP 디렉터리에 있는 모든 파일들을 한 번에 그대로 복사해 옵니다.
- curl 에 비하여 더 오래되었습니다.
- GNU 프로젝트입니다.
curl
- libcurl 라이브러리로 더 강력한 기능들을 추가/사용할 수 있습니다.
- stdin 또는 stdout 의 pipe 를 이용하는 전통적인 unix 스타일의 방식도 지원합니다.
- LDAP 이나 Samba 공유도 지원합니다.
- 양방향입니다. (wget 은 일반 HTTP POST request 만 지원합니다.)
- SSL 을 지원합니다.
- gzip 압축 및 해지를 지원합니다.
- MIT 라이센스입니다.
결론
- 만약, 별다른 옵션없이 컨텐츠를 조금 더 빠르게 다운로드하려고 한다면 wget 이 적합할 것 같습니다.
- 하지만, 조금 더 복잡한 컨텐츠를 다운로드 하려고 한다면 wget 보다는 curl 이 적합할 것 같습니다.