curl 또는 wget으로 게시된 Google 드라이브 데이터 다운로드

서버상에서의 작업 등으로, 우선 curl이나 wget로 Google Drive상의 일반 공개되고 있는 데이터를 다운로드하고 싶을 때의 대처 방법입니다.

파일 크기가 작은 경우



파일을 마우스 오른쪽 버튼으로 클릭> 공유 가능한 링크 가져 오기> FILE_ID ( "id = "이후의 문자열)를 얻고,
wget "https://drive.google.com/uc?export=download&id=<FILE_ID>" -O <FILE_NAME>

형식으로 다운로드 할 수 있습니다.





예: CRF++ 다운로드



Google 드라이브에 액세스해 보면

공유 가능한 링크는
https://drive.google.com/open?id=0B4y35FiV1wh7QVR6VXJ5dWExSTQ

그래서,
wget "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7QVR6VXJ5dWExSTQ" -O CRF++-0.58.tar.gz

그렇다면 다운로드 할 수 있습니다.

파일 크기가 큰 경우



파일 크기가 작은 경우와 순서는 같지만, 「파일의 바이러스 스캔을 실행할 수 없습니다」라고 하는 확인 다이얼로그가 나오므로, 한 번 더 필요하게 됩니다.



내용을 조사해 보면 confirm=XXXX라는 4문자의 랜덤한 문자열이 추가로 필요하다는 것을 알기 때문에,
curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=<FILE_ID>" > /dev/null
CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)"  
curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=<FILE_ID>" -o <FILE_NAME>

로서 4문자의 패스를 빼내는 처리를 추가하면 다운로드할 수 있습니다.

예: CaboCha 다운로드



cabocha-0.69.tar.bz2를 다운로드하는 예입니다.

FILE_ID = "0B4y35FiV1wh7SDd1Q1dUQkZQaUU"를 얻습니다.
FILE_ID=0B4y35FiV1wh7SDd1Q1dUQkZQaUU
FILE_NAME=cabocha-0.69.tar.bz2
curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=${FILE_ID}" > /dev/null
CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)"  
curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=${FILE_ID}" -o ${FILE_NAME}

좋은 웹페이지 즐겨찾기