Better Technology, Better Tomorrow.

Cloud 기술팀 개인 포스팅 자료

Linux General

Linux wget/curl 이용하여 구글드라이브 다운로드

ProLinux 2020. 12. 31. 12:00

구글 드라이브로부터 공유 링크를 받으신 경우, 해당 파일을 Linux CLI 환경에서 다운로드 하려면

wget을 이용하시는게 맞습니다. 하지만 공유받은 링크를 그대로 wget하실 경우 html이 호출되는 게 정상입니다.

 

따라서 공유 링크에서 특정 부분을 수정하셔야 하는데, 다운로드 받으시려는 파일의 사이즈가

100MB를 기준으로 이상인 경우와 이하인 경우의 조치가 다릅니다. 아래 내용을 수행 부탁드립니다.

 

<다운로드 파일 사이즈가 100MB 이하인 경우>

 

우선 wget을 사용하여 https 프로토콜로 접속할 경우

인증서의 유효성을 검증하지 않도록 조치를 하여야 접근이 가능하므로

--no-check-certificate 라는 옵션을 부여해야 합니다.

 

구글 드라이브로부터 공유받은 URL은 다음 예시와 같을 겁니다.

https://drive.google.com/file/d/1IULCquWhHWY7aJcSFWQM9f8_r6x81mBZ/view?usp=sharing/

 

이 중에서 표시된 1IULCquWhHWY7aJcSFWQM9f8_r6x81mBZ 부분이 해당 파일의 고유 ID값입니다.

해당 부분의 ID를 FILEID라고 지칭했을때 다음 명령의 '<FILEID>' 부분을 지우고 입력해주시면 

해당 파일을 정상적으로 다운로드 받을 수 있습니다. 

-O 옵션을 이용한다면, 현재 명령을 수행할 폴더 내에 원하는 파일명으로 다운로드가 가능합니다.

 

wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=<FILEID>' -O <지정할 파일명>

 

https://docs.google.~~https://drive.doogle.~~ 중 어떤 것을 사용해도 FILEID만 같다면 동일한 파일이 다운로드 됩니다.

 

 

 

<다운로드 파일 사이즈가 100MB 초과일 경우>

 

위의 내용과 동일하게 FILEID는 필요로 합니다. 

다만, 해당 과정은 wget이 아닌 curl 명령을 이용하기 때문에 해당 다운로드 링크로부터 회신받은

쿠키가 필요하므로, 쿠키를 우선 저장하는 과정을 거칩니다.

 

쿠키 저장 방법

 

 # curl -c ./cookie -s -L "https://drive.google.com/uc?export=download&id=<FILEID>" > /dev/null

 

 

위에서 저장한 쿠키를 이용해 다운로드를 진행하는 명령

 

 # curl -Lb ./cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' ./cookie`&id=<FILEID>" -o <지정할 파일명>

 

 

쿠키를 ./cookie 경로에 저장 후, 이 쿠키를 이용하여 다운로드 받는 방식입니다.

해당 경로가 변경된다면, 명령에서도 수정해주셔야 합니다.

 

wget 명령에선 다운로드 받은 파일명을 지정할때 대문자 -O 옵션을 이용하고,

curl 명령에선 다운로드 받은 파일명을 지정할때 소문자 -o 옵션을 이용하므로 사용에 유의하시면 되겠습니다.