전공/Linux, Mac, Windows

linux 환경에서 구글 드라이브 자료 바로 받아오기!

import ysy 2022. 6. 23. 17:14

한 프로젝트에서 딥러닝 할 데이터셋을 구글 드라이브 링크로 주셨다.

링크로 가서 다운을 받았는데 10시간 걸린다고 나왔다.

하루 죙일 걸리겠어 그냥

심지어 그마저도 네트워크 오류로 자꾸만 실패... 

워낙 큰 용량의 데이터라 무리인가보다.

로컬에 다운로드 실패

그래서 오늘은 구글 드라이브로 공유된 파일을 리눅스 환경에 바로 받아오는 방법을 소개하겠습니다!

 

해결 방법: wget

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와 file name만 넣어주면 됩니다.

그럼 file name같은 경우엔 그냥 공유할 파일이름을 쓰면 된다지만 (나의 경우엔 open.zip이 file name이 된다) 대체 file ID는 뭘까요?

그것은 바로 공유된 구글 드라이브 링크를 통해 알 수 있습니다.

공유된 파일 페이지에 가서 아래 그림과 같이 공유를 누릅니다.

공유 파일 페이지

그러면 이렇게 공유 페이지가 뜨는데 링크 복사를 눌러서 링크를 획득합니다.

자 저는 아래와 같이 얻었는데요, 하이라이트된 부분이 제 file ID라고 보시면 됩니다.

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

여러분들도 ~~/d/와 /view?~~ 사이의 부분을 file ID로 추출하시면 됩니다!

그렇게 아래는 제가 실제로 사용한 명령어가 되구요!!

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=1wRU01T59GmnEWZcC3oxDwaW3P3eKHn2_' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1wRU01T59GmnEWZcC3oxDwaW3P3eKHn2_" -O open.zip && rm -rf ~/cookies.txt

 

이 방법으로 5분만에 다운로드 완료!! 



 

 


참고한 사이트:

https://medium.com/@acpanjan/download-google-drive-files-using-wget-3c2c025a8b99

 

Download Google Drive Files using wget

Files can be downloaded from google drive using wget. Before that you need to know that files are small and large sized in google drive.

medium.com

https://nuggy875.tistory.com/73

https://sound10000w.tistory.com/229

 

반응형