구글 드라이브에서 wget / curl 큰 파일


305

스크립트로 Google 드라이브에서 파일을 다운로드하려고하는데 약간의 문제가 있습니다. 다운로드하려는 파일이 여기 있습니다 .

나는 온라인에서 광범위하게 보았고 마침내 그들 중 하나를 다운로드받을 수있었습니다. 파일의 UID가 있고 더 작은 파일 (1.6MB) 다운로드는 괜찮지 만 더 큰 파일 (3.7GB)은 항상 바이러스 검사없이 다운로드를 진행할 것인지 묻는 페이지로 리디렉션됩니다. 누군가 내가 그 화면을 벗어나도록 도울 수 있습니까?

첫 번째 파일이 작동하는 방법은 다음과 같습니다.

curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYeDU0VDRFWG9IVUE" > phlat-1.0.tar.gz

다른 파일에서 동일하게 실행하면

curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM" > index4phlat.tar.gz

나는 다음과 같은 결과를 얻는다- 여기에 이미지 설명을 입력하십시오

링크의 마지막 3 줄에서 &confirm=JwkK임의의 4 문자 문자열이 있지만 내 URL에 확인을 추가하는 방법이 있음을 나타냅니다. 내가 방문한 링크 중 하나가 제안 &confirm=no_antivirus했지만 작동하지 않습니다.

여기 누군가가 이것을 도울 수 있기를 바랍니다!


당신이 제공하시기 바랍니다 수 있습니다 curl script당신은에서 파일을 다운로드하는 데 사용 google drive나는이 스크립트에서 작업 파일 (이미지) 다운로드 할 수 없습니다 나처럼curl -u username:pass https://drive.google.com/open?id=0B0QQY4sFRhIDRk1LN3g2TjBIRU0 >image.jpg
Kasun Siyambalapitiya

허용 된 답변을보십시오. gdown.pl 스크립트를 사용했습니다gdown.pl https://drive.google.com/uc?export=download&confirm=yAjx&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM index4phlat.tar.gz
Arjun

2
스크롤하는 것을 두려워하지 마십시오! 이 답변 은 한 번에 다운로드 할 수있는 매우 훌륭한 파이썬 스크립트를 제공합니다.
Ciprian Tomoiagă

./gdrive download [FILEID] [-폴더 인 경우 재귀 적] 주어진 URL에 액세스하고 토큰 코드를 복사하여 붙여 넣기를 요청합니다.
roj4s

답변:


59

경고 :이 기능은 더 이상 사용되지 않습니다. 주석에서 아래 경고를 참조하십시오.


이 질문을 살펴보십시오. Google Drive API를 사용하여 Google Drive에서 직접 다운로드

기본적으로 공용 디렉토리를 작성하고 다음과 같은 상대 참조로 파일에 액세스해야합니다.

wget https://googledrive.com/host/LARGEPUBLICFOLDERID/index4phlat.tar.gz

또는이 스크립트를 사용할 수 있습니다 : https://github.com/circulosmeos/gdown.pl


5
또 다른 좋은 방법은 리눅스 명령 행 도구 "gdrive" github.com/prasmussen/gdrive
Tobi

1
나는 구글 드라이브에 생성 퍼머와 함께 Nanolx의 펄 스크립트를 사용할 수 있었다 gdurl.com --Thanks!
jadik

14
경고 : Google 드라이브의 웹 호스팅 지원은 더 이상 사용되지 않습니다. "2015 년 8 월 31 일부터 사용자 및 개발자를위한 Google 드라이브의 웹 호스팅은 더 이상 사용되지 않습니다. Google Apps 고객은 googledrive.com/host를 통해 콘텐츠를 제공 할 때 2016 년 8 월 31 일까지 1 년 동안이 기능을 계속 사용할 수 있습니다. / doc id가 중단됩니다. " googleappsupdates.blogspot.com/2015/08/…
chrish

9
불행히도 2018 년
Calimo

2
gdown.pl도 저에게 효과적이었습니다. 그것은 그 API를 사용하지 않는 것 스크립트 프로그램에서 빠른 보면, 그것은 매개 변수를 사용하여 새 URL을 생성 export=download가 예측 가능한 미래에 대한 좋은해야한다, 그래서 구글에서 해당 URL 방식을 변경하지 않는 한
벤 남작에게

230

2020 년 6 월

file_id0Bz8a_Dbh9QhbNU3SGlFaDg처럼 보일 것이다

파일을 마우스 오른쪽 버튼으로 클릭 한 다음 공유 가능 링크 가져 오기를 통해 파일을 얻을 수 있습니다. 열린 액세스 파일에 대해서만 작업하십시오 (링크가있는 사람은 누구나 볼 수 있음). 디렉토리에서는 작동하지 않습니다. Google Colab에서 테스트되었습니다. 파일 다운로드시 가장 잘 작동합니다. tar / zip을 사용하여 단일 파일로 만드십시오.

예 : 이 디렉토리 에서 readme 파일을 다운로드하려면

gdown https://drive.google.com/uc?id=0B7EVK8r0v71pOXBhSUdJWU1MYUk

9
그냥 제거 export=download&에서 gdown https://drive.google.com/uc?export=download&id=your_file_id그것은 매력처럼 작동
Saravanabalagi 라마 찬드

8
이것은 2018 년 7 월에 일했습니다! 파일을 공유하고 drive.google.com/open?id=FILE_ID 와 같은 링크가있는 경우 "open"을 "uc"로 바꾸고 간단히 gdown drive.google.com/uc?id=FILE_ID
simo23

7
gdown을 사용하여 Gdrive에서 폴더를 어떻게 다운로드 할 수 있습니까?
user1

7
2019 년 8 월 현재 작동하지 않습니다. 오류 : "권한이 거부되었습니다 : drive.google.com/uc?id=0B7EVK8r0v71pWEZsZE9oNnFzTm8 '링크가있는 모든 사용자'에 대한 권한을 변경해야합니까?" 그리고 공개적으로 다운로드 가능한 CelebA 데이터 셋이므로 괜찮습니다. '공유 가능한 링크 받기'를 클릭하여 다운로드 링크를 얻은 다음 '링크 공유 켜기'와 '링크가있는 모든 사용자가 볼 수 있습니다'라고 말했습니다. 따라서 권한이 이미 부여 된 것처럼 보이지만 오류는 권한이 거부되었음을 나타냅니다. 시도해보고 싶다면 호스트 사이트는 다음과 같습니다. mmlab.ie.cuhk.edu.hk/projects/CelebA.html
Kristof

6
이것은 내가 시도한 수십 가지 중에서 유일한 해결책입니다. 처음으로 상향 조정해야합니다. : 난 단지에서 '공유 링크'변경해야 drive.google.com/open?id=XXXXdrive.google.com/uc?id=XXXX
deprekate

194

공유 가능한 링크가 주어지면 Google 드라이브에서 파일을 다운로드하는 Python 스 니펫을 작성했습니다 . 2017 년 8 월 기준으로 작동합니다 .

스니핑은 gdrive 또는 Google Drive API를 사용하지 않습니다 . 요청 모듈을 사용합니다 .

Google 드라이브에서 대용량 파일을 다운로드 할 때 단일 GET 요청으로는 충분하지 않습니다. 두 번째 매개 변수가 필요하며 confirm 이라는 추가 URL 매개 변수가 있으며 그 값은 특정 쿠키의 값과 같아야합니다.

import requests

def download_file_from_google_drive(id, destination):
    def get_confirm_token(response):
        for key, value in response.cookies.items():
            if key.startswith('download_warning'):
                return value

        return None

    def save_response_content(response, destination):
        CHUNK_SIZE = 32768

        with open(destination, "wb") as f:
            for chunk in response.iter_content(CHUNK_SIZE):
                if chunk: # filter out keep-alive new chunks
                    f.write(chunk)

    URL = "https://docs.google.com/uc?export=download"

    session = requests.Session()

    response = session.get(URL, params = { 'id' : id }, stream = True)
    token = get_confirm_token(response)

    if token:
        params = { 'id' : id, 'confirm' : token }
        response = session.get(URL, params = params, stream = True)

    save_response_content(response, destination)    


if __name__ == "__main__":
    import sys
    if len(sys.argv) is not 3:
        print("Usage: python google_drive.py drive_file_id destination_file_path")
    else:
        # TAKE ID FROM SHAREABLE LINK
        file_id = sys.argv[1]
        # DESTINATION FILE ON YOUR DISK
        destination = sys.argv[2]
        download_file_from_google_drive(file_id, destination)

스 니펫을 실행 중 python snippet.py file_id destination입니다. 이것이 올바른 실행 방법입니까? 대상이 폴더 인 경우 오류가 발생합니다. 파일을 힘들게하고 대상으로 사용하면 스 니펫이 정상적으로 작동하지만 아무것도하지 않습니다.
Manfredo

2
@Manfredo 예를 들어 $ python snippet.py your_google_file_id /your/full/path/and/filename.xlsx 나를 위해 일한 것처럼 파일을 저장하려는 파일 이름이 필요합니다 . 그것이 작동하지 않는 경우, 당신은 어떤 출력을 제공 했습니까? 파일이 생성됩니까?
Jeff

1
@CiprianTomoiaga tqdm Python 모듈을 사용하여 진행률 표시 줄의 90 %가 작동합니다. 나는 gist.github.com/joshtch/8e51c6d40b1e3205d1bb2eea18fb57ae 요점을 만들었다 . 불행히도 전체 파일 크기를 얻는 신뢰할 수있는 방법을 찾지 못했습니다. % 진행률 및 예상 완료 시간을 계산하는 데 필요합니다.
joshtch

또한 요청 모듈은 Google 드라이브에 액세스하기 위해 어떤 종류의 인증을 사용합니까? OAuth? 예를 들어, 위의 코드에서 이것이 처리되는 위치 -requests-oauthlib.readthedocs.io/en/latest/… ?
tauseef_CuriousGuy

7
대단해! 다음은 drive_File_ID에 대한 팁입니다. https // drive.google.com / file / d / "drive_File_ID"/ view-https ~~ file / d /와 다운로드 링크의 / view 사이
이재영

70

오픈 소스 Linux / Unix 명령 행 도구를 사용할 수 있습니다 gdrive.

설치하려면 :

  1. 바이너리를 다운로드 하십시오. 예를 들어 아키텍처에 맞는 것을 선택하십시오gdrive-linux-x64.

  2. 경로에 복사하십시오.

    sudo cp gdrive-linux-x64 /usr/local/bin/gdrive;
    sudo chmod a+x /usr/local/bin/gdrive;
    

그것을 사용하려면 :

  1. Google 드라이브 파일 ID를 결정하십시오. 이를 위해 Google 드라이브 웹 사이트에서 원하는 파일을 마우스 오른쪽 버튼으로 클릭하고 "링크 가져 오기 ..."를 선택하십시오. 다음과 같은 것을 반환합니다 https://drive.google.com/open?id=0B7_OwkDsUIgFWXA1B2FPQfV5S8H. 뒤에있는 ?id=줄을 찾아 클립 보드에 복사하십시오. 이것이 파일의 ID입니다.

  2. 파일을 다운로드하십시오. 물론 다음 명령에서 파일 ID를 대신 사용하십시오.

    gdrive download 0B7_OwkDsUIgFWXA1B2FPQfV5S8H
    

처음 사용시이 도구는 Google Drive API에 대한 액세스 권한을 얻어야합니다. 이를 위해 브라우저에서 방문 해야하는 링크가 표시되고 도구에 복사하여 붙여 넣을 수있는 확인 코드가 표시됩니다. 그런 다음 다운로드가 자동으로 시작됩니다. 진행률 표시기는 없지만 파일 관리자 나 두 번째 터미널에서 진행률을 관찰 할 수 있습니다.

출처 : Tobi의 다른 답변에 대한 의견 .

 

추가 트릭 : 속도 제한. gdrive제한된 최대 속도로 다운로드하려면 (네트워크 pv휩쓸 지 않기 위해 ...) 다음과 같은 명령을 사용할 수 있습니다 ( PipeViewer ).

gdrive download --stdout 0B7_OwkDsUIgFWXA1B2FPQfV5S8H | \
  pv -br -L 90k | \
  cat > file.ext

다운로드 한 데이터 양 ( -b)과 다운로드 속도 ( ) 가 표시 -r되고이 속도는 90 kiB / s ( -L 90k)로 제한됩니다.


오류 메시지 : "인증되지 않은 사용에 대한 일일 한도를 초과했습니다. 계속 사용하려면 가입해야합니다.", 코드 : 403
Nianliang

@Nianliang 아직 경험하지는 않았지만 추측은 다음과 같습니다. gdrive를 사용하여 공개적으로 액세스 가능한 파일을 다운로드 했으므로 처음 사용할 때 인증을 요구하지 않습니다. 비공개 파일을 먼저 사용해보고 인증에 성공했는지 확인하십시오 (답변 : "처음 사용시…"). 도움이 되었습니까?
tanius

3
인증 코드를받을 수 없습니다. "이 앱에서 일시적으로 Google 로그인을 사용 중지 한 상태로 로그인했습니다.이 앱은 아직 Google 로그인을 사용하기 위해 Google에서 확인하지 않았습니다."오류가 발생합니다.
useranon

1
여기에도 같은 오류 메시지가 있습니다. "Google이 Google 로그인을 사용하기 위해이 앱을 아직 확인하지 않았습니다."
gebbissimo

1
@useranon :이 솔루션을 사용해보십시오 : github.com/gdrive-org/gdrive/issues/533#issuecomment-596336395 , Google 서비스 계정을 만들고이 서비스 계정 주소와 파일 / 폴더를 공유해야합니다. 내가 해냈어 04/17/2020부터 작동합니다!
whyisyoung

52
ggID='put_googleID_here'  
ggURL='https://drive.google.com/uc?export=download'  
filename="$(curl -sc /tmp/gcokie "${ggURL}&id=${ggID}" | grep -o '="uc-name.*</span>' | sed 's/.*">//;s/<.a> .*//')"  
getcode="$(awk '/_warning_/ {print $NF}' /tmp/gcokie)"  
curl -Lb /tmp/gcokie "${ggURL}&confirm=${getcode}&id=${ggID}" -o "${filename}"  

어떻게 작동합니까?
curl로 쿠키 파일 및 HTML 코드를 가져옵니다.
grep과 sed로 html을 파이프하고 파일 이름을 검색하십시오.
쿠키 파일에서 awk로 코드를 확인하십시오.
마지막으로 쿠키가 활성화 된 파일을 다운로드하고 코드와 파일 이름을 확인하십시오.

curl -Lb /tmp/gcokie "https://drive.google.com/uc?export=download&confirm=Uq6r&id=0B5IRsLTwEO6CVXFURmpQZ1Jxc0U" -o "SomeBigFile.zip"

파일 이름이 필요하지 않으면 변수 curl이 짐작할 수 있습니다.
-L 경로 재 지정을 따르십시오
-O 원격 이름
-J 원격 헤더 이름

curl -sc /tmp/gcokie "${ggURL}&id=${ggID}" >/dev/null  
getcode="$(awk '/_warning_/ {print $NF}' /tmp/gcokie)"  
curl -LOJb /tmp/gcokie "${ggURL}&confirm=${getcode}&id=${ggID}" 

URL에서 Google 파일 ID를 추출하려면 다음을 사용할 수 있습니다.

echo "gURL" | egrep -o '(\w|-){26,}'  
# match more than 26 word characters  

또는

echo "gURL" | sed 's/[^A-Za-z0-9_-]/\n/g' | sed -rn '/.{26}/p'  
# replace non-word characters with new line,   
# print only line with more than 26 word characters 

아주 잘 했어요 다른 모든 답변이 실패했을 때 5GB + 파일에서 바이러스 경고를 제거했습니다.

1
이것은 대단하다. --insecure작동하도록 두 curl 요청에 옵션 을 추가 해야했습니다.
Taylor R

@lapinpt RESUME 기능을 어떻게 추가합니까?
steven7mwesigwa

파일에 공개 링크가 있으면 어떻게 든 Google ID를 제거 할 수 있습니까?
oarfish

42

2018 년 3 월 기준으로 업데이트하십시오.

다른 답변으로 제공된 다양한 기술을 사용하여 파일 (6GB)을 Google 드라이브에서 AWS ec2 인스턴스로 직접 다운로드했지만 그중 아무것도 작동하지 않습니다 (오래되었을 수 있습니다).

그래서 다른 사람들의 정보를 위해, 내가 성공적으로 한 방법은 다음과 같습니다.

  1. 다운로드하려는 파일을 마우스 오른쪽 버튼으로 클릭하고 공유를 클릭 한 후 링크 공유 섹션에서 "이 링크가있는 모든 사용자가 편집 할 수 있음"을 선택하십시오.
  2. 링크를 복사하십시오. 이 형식이어야합니다.https://drive.google.com/file/d/FILEIDENTIFIER/view?usp=sharing
  3. 링크에서 FILEIDENTIFIER 부분을 복사하십시오.
  4. 아래 스크립트를 파일로 복사하십시오. curl을 사용하고 쿠키를 처리하여 파일 다운로드를 자동화합니다.

    #!/bin/bash
    fileid="FILEIDENTIFIER"
    filename="FILENAME"
    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 ${filename}
    
  5. 위에 표시된대로 FILEIDENTIFIER를 스크립트에 붙여 넣습니다. 큰 따옴표를 유지하십시오!

  6. FILENAME 대신 파일 이름을 제공하십시오. 큰 따옴표를 유지하고 FILENAME에 확장자 (예 :)를 포함해야합니다 myfile.zip.
  7. 이제 터미널에서이 명령을 실행하여 파일을 저장하고 파일을 실행 가능하게 만드십시오 sudo chmod +x download-gdrive.sh.
  8. `./download-gdrive.sh '를 사용하여 스크립트를 실행하십시오.

추신 : 위의 스크립트에 대한 Github 요점은 다음과 같습니다. https://gist.github.com/amit-chahar/db49ce64f46367325293e4cce13d2424


wget을위한 교체 -c와 함께 --save-cookies-b함께--load-cookies
untore

3
이것이 나를 위해 일한다는 것을 확인했습니다, 명확성을 위해 약간 편집했습니다
Jeff Atwood

1
2019 년 1 월에 작동 합니다. 마지막 줄에 "따옴표 를 추가해야했습니다 ${filename}.
Jimbo

> ./download-gdrive.sh" Do not be like me and try to run the script by typing download-gdrive.sh를 사용하여 스크립트를 실행하십시오 , the . /`는 필수 인 것으로 보입니다.
Ambroise Rabier

2019 년 5 월
Kshitij Bajracharya

29

이 작업을 수행하는 빠른 방법이 있습니다.

링크가 공유되어 있는지 확인하십시오.

https://drive.google.com/open?id=FILEID&authuser=0

그런 다음 해당 FILEID를 복사하여 다음과 같이 사용하십시오.

wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O FILENAME

2
안녕, 답변 감사합니다. 내가 공유 한 링크의 파일을 보면 파일이 공유되는 동안 링크에 'authuser = 0'태그가 없다는 것을 알 수 있습니다. 제공된 파일에서 방법이 작동하지 않았습니다! Arjun
Arjun

2
공개 액세스조차 시도하지 않았지만 링크 전용 공유 파일에 적합합니다. 이처럼 사용 :wget 'https://docs.google.com/uc?export=download&id=SECRET_ID' -O 'filename.pdf'
삼포 Sarrala - codidact.org

2018 년부터 작동하지 않아 파일 대신 바이러스 백신 검색 웹 페이지가 나타납니다.
Calimo

7
-r플래그 와 함께 사용하면 2018 년에 바이러스 백신 스캐너를 무시합니다 wget. 그래서wget --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=FILE_ID' -O 'filename'
Artem Pelenitsyn

1
2019 년 10 월 현재 저를 위해 일했으며 유틸리티 응용 프로그램이 거의 실행되지 않는 Docker 컨테이너로 파일을 가져 오는 완벽한 솔루션이었습니다.
ammills01 01. 17. 19:11

23

Google 드라이브의 기본 동작은 파일이 크면 파일을 검사하여 바이러스가 있는지 검사하는 것입니다.

현재 내가 찾은 유일한 해결 방법은 파일을 웹과 공유하고 웹 리소스를 만드는 것입니다.

Google 드라이브 도움말 페이지에서 인용하십시오.

Drive를 사용하면 HTML, CSS 및 Javascript 파일과 같은 웹 리소스를 웹 사이트로 볼 수 있습니다.

드라이브로 웹 페이지를 호스팅하려면 다음 단계를 따르세요.

  1. drive.google.com에서 드라이브를 열고 파일을 선택하십시오.
  2. 페이지 상단의 공유 버튼을 클릭 하십시오.
  3. 공유 상자의 오른쪽 하단에서 고급 을 클릭하십시오 .
  4. 변경 ...을 클릭 하십시오.
  5. 웹에서 공개를 선택 하고 저장을 클릭 하십시오 .
  6. 공유 상자를 닫기 전에 "공유 링크"아래 필드의 URL에서 문서 ID를 복사하십시오. 문서 ID는 URL에서 슬래시 사이의 대문자와 소문자 및 숫자의 문자열입니다.
  7. "www.googledrive.com/host/[doc id]와 같은 URL을 공유합니다. 여기서 [doc id]는 6 단계에서 복사 한 문서 ID로 대체됩니다
    . 이제 누구나 웹 페이지를 볼 수 있습니다.

여기 찾았 https://support.google.com/drive/answer/2881970?hl=en

예를 들어 Google 드라이브에서 파일을 공개적으로 공유하면 공유 링크는 다음과 같습니다.

https://drive.google.com/file/d/0B5IRsLTwEO6CVXFURmpQZ1Jxc0U/view?usp=sharing

그런 다음 파일 ID를 복사하고 다음과 같은 googledrive.com 링크를 만듭니다.

https://www.googledrive.com/host/0B5IRsLTwEO6CVXFURmpQZ1Jxc0U

1
@ FıratKÜÇÜK 당신은 당신이 올바른 URL 형식을 가지고 있다고 확신합니까? (www.googledrive.com이 아니라 drive.google.com이 아님) 방금 시도했지만 작동했습니다.
Charles Forest

내 파일이 50MB를 넘습니다. 바이러스 검사 확인을 요청합니다. 따라서 솔루션은 내 경우에 적합하지 않습니다. 대신 "gdrive"콘솔 응용 프로그램 솔루션을 사용했습니다.
Fırat KÜÇÜK

@ FıratKÜÇÜK 방금 바이러스 검사를 유발하는이 방법으로 200+ Mb 파일을 다운로드했습니다. 오른쪽 클릭> "공유 가능 링크 얻기"에서 ID를 받았습니다.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

1
@ 알렉스 HTTP (502)에 대한 하나 googledrive.com/host/0BwPIpgeJ2AdnUGUzVGJuak5abDg
user2284570

11
이 기능은 더 이상 사용되지 않으며 더 이상 지원되지 않습니다
Daniel G

19

쉬운 방법 :

(일회성 다운로드에 필요한 경우)

  1. 다운로드 링크가있는 Google 드라이브 웹 페이지로 이동
  2. 브라우저 콘솔을 열고 "네트워크"탭으로 이동하십시오
  3. 다운로드 링크를 클릭하십시오
  4. 파일 다운로드가 시작될 때까지 기다렸다가 해당 요청을 찾은 다음 (목록에서 마지막 요청이어야 함) 다운로드를 취소 할 수 있습니다.
  5. 요청을 마우스 오른쪽 버튼으로 클릭하고 "cURL로 복사"(또는 유사)를 클릭하십시오.

다음과 같은 결과가 발생합니다.

curl 'https://doc-0s-80-docs.googleusercontent.com/docs/securesc/aa51s66fhf9273i....................blah blah blah...............gEIqZ3KAQ==' --compressed

콘솔에 붙여 > my-file-name.extension넣고 끝에 추가 하십시오 (그렇지 않으면 콘솔에 파일을 씁니다).


2019 년 6 월 일
techkuz 2016

2020 년 2 월 현재
Jivan

12

Roshan Sethia의 답변을 바탕으로

2018 년 5 월

WGET 사용 :

  1. 아래와 같이 wgetgdrive.sh라는 쉘 스크립트를 작성하십시오.

    #!/bin/bash
    
    # Get files from Google Drive
    
    # $1 = file ID
    # $2 = file name
    
    URL="https://docs.google.com/uc?export=download&id=$1"
    
    wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate $URL -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=$1" -O $2 && rm -rf /tmp/cookies.txt
    
  2. 스크립트를 실행할 수있는 올바른 권한을 부여하십시오

  3. 터미널에서 다음을 실행하십시오.

    ./wgetgdrive.sh <file ID> <filename>
    

    예를 들면 다음과 같습니다.

    ./wgetgdrive.sh 1lsDPURlTNzS62xEOAIG98gsaW6x2PYd2 images.zip
    

1
이것은 CHARM 감사와 같은 일을 용이하게하기 위해 :chmod 770 wgetgdrive.sh
Mohamed Kawsara

8

-업데이트-

파일을 다운로드하려면 먼저 youtube-dl여기에서 파이썬을 얻으 십시오.

youtube-dl : https://rg3.github.io/youtube-dl/download.html

또는 다음과 pip같이 설치하십시오 .

sudo python2.7 -m pip install --upgrade youtube_dl 
# or 
# sudo python3.6 -m pip install --upgrade youtube_dl

최신 정보:

방금 이것을 발견했습니다.

  1. drive.google.com에서 다운로드하려는 파일을 마우스 오른쪽 버튼으로 클릭하십시오.

  2. 딸깍 하는 소리 Get Sharable link

  3. 켜기 Link sharing on

  4. 클릭 Sharing settings

  5. 옵션을 보려면 상단 드롭 다운을 클릭하십시오

  6. 더 클릭

  7. 고르다 [x] On - Anyone with a link

  8. 링크 복사

https://drive.google.com/file/d/3PIY9dCoWRs-930HHvY-3-FOOPrIVoBAR/view?usp=sharing       
(This is not a real file address)

다음에 ID를 복사하십시오 https://drive.google.com/file/d/.

3PIY9dCoWRs-930HHvY-3-FOOPrIVoBAR

이것을 명령 줄에 붙여 넣으십시오.

youtube-dl https://drive.google.com/open?id=

ID를 뒤에 붙여 넣기 open?id=

youtube-dl https://drive.google.com/open?id=3PIY9dCoWRs-930HHvY-3-FOOPrIVoBAR
[GoogleDrive] 3PIY9dCoWRs-930HHvY-3-FOOPrIVoBAR: Downloading webpage
[GoogleDrive] 3PIY9dCoWRs-930HHvY-3-FOOPrIVoBAR: Requesting source file
[download] Destination: your_requested_filename_here-3PIY9dCoWRs-930HHvY-3-FOOPrIVoBAR
[download] 240.37MiB at  2321.53MiB/s (00:01)

그것이 도움이되기를 바랍니다.


1
안녕하세요, 나는 이것을 시도하고 명령 프롬프트에서 실행할 때 다운로드하고 있지만 서버에서 액세스하는 것과 같은 실제 "직접 링크"를 얻는 방법이 있습니까? 노드 {spawn}을 실행하려고 시도했지만 노드 서버로 다운로드 한 다음 다시 다운로드해야합니다 .Google 드라이브에서 직접 다운로드 링크를 얻는 방법이 있습니까? 그들은 어떤 링크를 사용합니까?
bluejayke

이제이 방법을 많이 사용해야하므로 완전히 자동화하려고합니다. 구글 링크를 얻으면 파이썬 스크립트가 나머지를 수행합니다. 나는 이것을하기 위해 셀레늄을 사용할 것이라고 생각합니다. 작동하면 솔루션을 업데이트합니다.
jturi

내 답변을 업데이트했습니다. youtube-dl이 포함 된 파일을 다운로드하기 위해 2 번의 클릭만으로 간단합니다.
jturi

7

2016 년 12 월 현재 나에게 맞는 것이 무엇인지 제안하는 답변이 없습니다 ( source ).

curl -L https://drive.google.com/uc?id={FileID}

Google 드라이브 파일이 링크가있는 파일과 공유되었으며 공유 URL에서 {FileID}뒤에있는 문자열 인 경우 ?id=.

큰 파일을 확인하지는 않았지만 알아두면 도움이 될 것입니다.


흠 ... 나를 위해 작동하지 않았다 : (웹 파일을 다운로드-파일이 아닌
kgingeri

1
curl -L -o {filename} https://drive.google.com/uc?id={FileID}나를 위해 일했다, 감사합니다!
Dário

이것은 나를 위해 작동하지 않습니다. 내 링크는 다음과 같습니다 (링크가있는 모든 사람이 볼 수 있음) : drive.google.com/file/d/0B7Jh6M91b83bdFlWX2RIU2hYSWM/… . 나는 시도 : <코드> 컬 -O -J -L drive.google.com/uc?id=0B7Jh6M91b83bdFlWX2RIU2hYSWM</code > 그리고이 결과를 얻을 : 컬 : (56)에 연결 한 후 프록시에서 HTTP 코드 403 수신을
스티브

7
만 25메가바이트까지 파일을 작동, 더 큰 파일은 바이러스 검사 경고 페이지 제공
CEN

6

가장 쉬운 방법은 다음과 같습니다.

  1. 다운로드 링크 생성 및 fileID 복사
  2. WGET으로 다운로드 : wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/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 /tmp/cookies.txt

1
정말 고맙습니다! 믿을 수
Nicholas Pipitone

6

Google 드라이브는 이제 파일의 실제 위치로 리디렉션을 사용하기 때문에 위의 답변은 2020 년 4 월에 구식입니다.

공개 문서를위한 macOS 10.15.4에서 2020 년 4 월 기준으로 작업 :

# this is used for drive directly downloads
function download-google(){
  echo "https://drive.google.com/uc?export=download&id=$1"
  mkdir -p .tmp
  curl -c .tmp/$1cookies "https://drive.google.com/uc?export=download&id=$1" > .tmp/$1intermezzo.html;
  curl -L -b .tmp/$1cookies "$(egrep -o "https.+download" .tmp/$1intermezzo.html)" > $2;
}

# some files are shared using an indirect download
function download-google-2(){
  echo "https://drive.google.com/uc?export=download&id=$1"
  mkdir -p .tmp
  curl -c .tmp/$1cookies "https://drive.google.com/uc?export=download&id=$1" > .tmp/$1intermezzo.html;
  code=$(egrep -o "confirm=(.+)&amp;id=" .tmp/$1intermezzo.html | cut -d"=" -f2 | cut -d"&" -f1)
  curl -L -b .tmp/$1cookies "https://drive.google.com/uc?export=download&confirm=$code&id=$1" > $2;
}

# used like this
download-google <id> <name of item.extension>

1
download-google-2나를 위해 작동합니다. 내 파일의 크기는 3G입니다. 감사합니다 @ danieltan95
Saurabh Kumar

download-google-2의 마지막 컬을 업데이트 curl -L -b .tmp/$1cookies -C - "https://drive.google.com/uc?export=download&confirm=$code&id=$1" -o $2;했으며 이제 다운로드를 다시 시작할 수 있습니다.
ssi-anik

저속 다운로드에 문제가있는 것 같습니다. 내가 찾은 또 다른 접근법. qr.ae/pNrPaJ
ssi-anik

5

Google 드라이브와 동일한 문제가있었습니다.

Links 2를 사용하여 문제를 해결하는 방법은 다음과 같습니다 .

  1. PC에서 브라우저를 열고 Google 드라이브에서 파일로 이동합니다. 파일에 공개 링크를 제공하십시오.

  2. 공개 링크를 클립 보드에 복사하십시오 (예 : 마우스 오른쪽 단추 클릭, 링크 주소 복사)

  3. 터미널을 엽니 다. 다른 PC / 서버 / 컴퓨터로 다운로드하는 경우이 시점에서 SSH로 연결해야합니다

  4. 링크 2 설치 (데비안 / 우분투 방식, 배포판 또는 OS와 동등한 기능 사용)

    sudo apt-get install links2

  5. 링크를 터미널에 붙여 넣고 다음과 같이 링크로 엽니 다.

    links2 "paste url here"

  6. 화살표 키를 사용하여 링크 내에서 다운로드 링크로 이동 한 후 Enter

  7. 파일 이름을 선택하면 파일이 다운로드됩니다


Links트릭을 완전히했다! 그리고 그것은 훨씬 더 낫습니다w3m
alvas

1
이것은 나를 위해 일한 유일한 것입니다! 2019 년 2 월. 이전 의견의 gdown 앱은 Google 문서 이외의 다른 사람이 호스팅하므로 다운로드 할 수 없습니다.
Steven

5

youtube-dl을 사용하십시오 !

youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890

--get-url직접 다운로드 URL을 얻기 위해 전달할 수도 있습니다 .


1
@ Ender 그것은 여전히 ​​나를 위해 작동합니다 youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [GoogleDrive] ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: Downloading webpage. 오래된 버전이 youtube-dl있거나 어떤 이유로 링크 형식을 인식하지 못할 수 있습니다 ... 위의 형식을 사용하여 원래 URL의 파일 ID로 id를 바꾸십시오.
aularon

5

이 스레드에 좋은 답변 을 올린 @ Amit Chahar 의 컬 스 니펫을 사용하고 있습니다. 별도의 파일이 아닌 bash 함수에 넣는 것이 유용하다는 것을 알았습니다..sh

function curl_gdrive {

    GDRIVE_FILE_ID=$1
    DEST_PATH=$2

    curl -c ./cookie -s -L "https://drive.google.com/uc?export=download&id=${GDRIVE_FILE_ID}" > /dev/null
    curl -Lb ./cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' ./cookie`&id=${GDRIVE_FILE_ID}" -o ${DEST_PATH}
    rm -fr cookie
}

예를 들어 ~/.bashrc(자동으로 소스되지 않은 경우 물론 소싱 한 후)에 포함될 수 있으며 다음과 같은 방식으로 사용됩니다

   $ curl_gdrive 153bpzybhfqDspyO_gdbcG5CMlI19ASba imagenet.tar

이것은 아마도 가장 좋은 대답 일 것입니다 ... 파이썬 gdown은 비교 가 너무 무겁습니다. 그래도 gdrive에 대해 불만족 스럽다고 말해야합니다.
smaudet

1
rm 명령에 -f 또는 -r이 필요하지 않습니다. 사람들에게 항상 "rm -rf"를 가르치라고하면 그들이 지키고 싶은 것을 제거하게 될 수도 있습니다.
josch

4

Go : drive로 작성된 오픈 소스 다중 플랫폼 클라이언트가 있습니다 . 꽤 훌륭하고 모든 기능을 갖추고 있으며 적극적으로 개발 중입니다.

$ drive help pull
Name
        pull - pulls remote changes from Google Drive
Description
        Downloads content from the remote drive or modifies
         local content to match that on your Google Drive

Note: You can skip checksum verification by passing in flag `-ignore-checksum`

* For usage flags: `drive pull -h`

4

위의 모든 답변은 답변의 단순성을 모호하게하거나 설명되지 않은 뉘앙스가있는 것 같습니다.

파일이 공개적으로 공유되는 경우 파일 ID 만 알고 있으면 직접 다운로드 링크를 생성 할 수 있습니다. URL은 " https://drive.google.com/uc?id=[FILEID]&export=download " 형식이어야합니다 . 이는 2019 년 11 월 22 일부터 작동합니다. 수신자가 Google에 로그인 할 필요는 없지만 파일을 공개적으로 공유해야합니다.

  1. 브라우저에서 drive.google.com으로 이동하십시오.

  2. 파일을 마우스 오른쪽 버튼으로 클릭하고 "공유 가능한 링크 얻기"를 클릭하십시오.

공유 링크를 마우스 오른쪽 버튼으로 클릭

  1. 새 탭을 열고 주소 표시 줄을 선택한 다음 공유 가능한 링크가 될 클립 보드의 내용을 붙여 넣습니다. Google 뷰어에 파일이 표시됩니다. ID는 URL의 "보기"구성 요소 바로 앞에있는 숫자입니다.

여기에 이미지 설명을 입력하십시오

  1. 다음 형식으로 URL을 편집하여 "[FILEID]"를 공유 파일의 ID로 바꾸십시오.

    https://drive.google.com/uc?id=[FILEID]&export=download

  2. 이것이 바로 직접 다운로드 링크입니다. 브라우저에서 파일을 클릭하면 파일이 브라우저에 "밀어 져"다운로드 대화 상자를 열어 파일을 저장하거나 열 수 있습니다. 다운로드 스크립트에서이 링크를 사용할 수도 있습니다.

  3. 따라서 동등한 curl 명령은 다음과 같습니다.

curl -L "https://drive.google.com/uc?id=AgOATNfjpovfFrft9QYa-P1IeF9e7GWcH&export=download" > phlat-1.0.tar.gz

2
큰 파일에는 작동하지 않습니다. 오류가 발생합니다Google Drive can't scan this file for viruses. <filename> is too large for Google to scan for viruses. Would you still like to download this file?
Rekovni

이것은 효과가 있었다. 감사합니다! 링크를 해당 형식으로 변환 한 후 다른 답변과 같이 gdown을 사용할 수도 있습니다
Harry M

3

Nanoix의 펄 스크립트를 사용할 수 없었거나 내가 본 다른 컬 예제를 얻을 수 없었기 때문에 파이썬에서 직접 API를 살펴보기 시작했습니다. 이것은 작은 파일에는 효과가 있었지만 큰 파일은 사용 가능한 램을 초과하여 API의 부분 다운로드 기능을 사용하는 다른 멋진 청킹 코드를 발견했습니다. 여기 요점 : https://gist.github.com/csik/c4c90987224150e4a0b2

client_secret json 파일을 API 인터페이스에서 로컬 디렉토리로 다운로드하는 것에 대한 정보를 참고하십시오.

출처
$ cat gdrive_dl.py
from pydrive.auth import GoogleAuth  
from pydrive.drive import GoogleDrive    

"""API calls to download a very large google drive file.  The drive API only allows downloading to ram 
   (unlike, say, the Requests library's streaming option) so the files has to be partially downloaded
   and chunked.  Authentication requires a google api key, and a local download of client_secrets.json
   Thanks to Radek for the key functions: http://stackoverflow.com/questions/27617258/memoryerror-how-to-download-large-file-via-google-drive-sdk-using-python
"""

def partial(total_byte_len, part_size_limit):
    s = []
    for p in range(0, total_byte_len, part_size_limit):
        last = min(total_byte_len - 1, p + part_size_limit - 1)
        s.append([p, last])
    return s

def GD_download_file(service, file_id):
  drive_file = service.files().get(fileId=file_id).execute()
  download_url = drive_file.get('downloadUrl')
  total_size = int(drive_file.get('fileSize'))
  s = partial(total_size, 100000000) # I'm downloading BIG files, so 100M chunk size is fine for me
  title = drive_file.get('title')
  originalFilename = drive_file.get('originalFilename')
  filename = './' + originalFilename
  if download_url:
      with open(filename, 'wb') as file:
        print "Bytes downloaded: "
        for bytes in s:
          headers = {"Range" : 'bytes=%s-%s' % (bytes[0], bytes[1])}
          resp, content = service._http.request(download_url, headers=headers)
          if resp.status == 206 :
                file.write(content)
                file.flush()
          else:
            print 'An error occurred: %s' % resp
            return None
          print str(bytes[1])+"..."
      return title, filename
  else:
    return None          


gauth = GoogleAuth()
gauth.CommandLineAuth() #requires cut and paste from a browser 

FILE_ID = 'SOMEID' #FileID is the simple file hash, like 0B1NzlxZ5RpdKS0NOS0x0Ym9kR0U

drive = GoogleDrive(gauth)
service = gauth.service
#file = drive.CreateFile({'id':FILE_ID})    # Use this to get file metadata
GD_download_file(service, FILE_ID) 

3

여기 내가 오늘 일한 작은 bash 스크립트가 있습니다. 큰 파일에서 작동하며 부분적으로 가져온 파일도 재개 할 수 있습니다. 두 개의 인수가 필요합니다. 첫 번째는 file_id이고 두 번째는 출력 파일의 이름입니다. 이전 답변에 비해 주요 개선 사항은 큰 파일에서 작동하며 일반적으로 사용 가능한 도구 (bash, curl, tr, grep, du, cut 및 mv) 만 필요하다는 것입니다.

#!/usr/bin/env bash
fileid="$1"
destination="$2"

# try to download the file
curl -c /tmp/cookie -L -o /tmp/probe.bin "https://drive.google.com/uc?export=download&id=${fileid}"
probeSize=`du -b /tmp/probe.bin | cut -f1`

# did we get a virus message?
# this will be the first line we get when trying to retrive a large file
bigFileSig='<!DOCTYPE html><html><head><title>Google Drive - Virus scan warning</title><meta http-equiv="content-type" content="text/html; charset=utf-8"/>'
sigSize=${#bigFileSig}

if (( probeSize <= sigSize )); then
  virusMessage=false
else
  firstBytes=$(head -c $sigSize /tmp/probe.bin)
  if [ "$firstBytes" = "$bigFileSig" ]; then
    virusMessage=true
  else
    virusMessage=false
  fi
fi

if [ "$virusMessage" = true ] ; then
  confirm=$(tr ';' '\n' </tmp/probe.bin | grep confirm)
  confirm=${confirm:8:4}
  curl -C - -b /tmp/cookie -L -o "$destination" "https://drive.google.com/uc?export=download&id=${fileid}&confirm=${confirm}"
else
  mv /tmp/probe.bin "$destination"
fi

SO에 오신 것을 환영합니다. 이 목적으로 참조를 사용한 경우 답에 포함하십시오. 어쨌든, 좋은 직업 +1
M--

3

이것은 2017 년 11 월 기준으로 작동합니다 https://gist.github.com/ppetraki/258ea8240041e19ab258a736781f06db

#!/bin/bash

SOURCE="$1"
if [ "${SOURCE}" == "" ]; then
    echo "Must specify a source url"
    exit 1
fi

DEST="$2"
if [ "${DEST}" == "" ]; then
    echo "Must specify a destination filename"
    exit 1
fi

FILEID=$(echo $SOURCE | rev | cut -d= -f1 | rev)
COOKIES=$(mktemp)

CODE=$(wget --save-cookies $COOKIES --keep-session-cookies --no-check-certificate "https://docs.google.com/uc?export=download&id=${FILEID}" -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/Code: \1\n/p')

# cleanup the code, format is 'Code: XXXX'
CODE=$(echo $CODE | rev | cut -d: -f1 | rev | xargs)

wget --load-cookies $COOKIES "https://docs.google.com/uc?export=download&confirm=${CODE}&id=${FILEID}" -O $DEST

rm -f $COOKIES

"source url"이라고 말하고 파싱이 있지만 여기에서 fileid라는 것을 직접 사용하여 다른 매개 변수에서 첫 번째 매개 변수로 사용하여 이해하는 것은 아닙니다.
1 월

@jan 둘 이상의 URL 스타일이 있다는 의미 일 수 있습니다. 나는 그것이 여전히 당신을 위해 일한 것이 기쁘다.
ppetraki

3

이 쓰레기를 엉망으로 만든 후. 크롬-개발자 도구를 사용하여 달콤한 파일을 다운로드하는 방법을 찾았습니다.

  1. Google 문서 탭에서 Ctr + Shift + J (설정-> 개발자 도구)
  2. 네트워크 탭으로 전환
  3. docs 파일에서 "Download"-> CSV, xlsx, ...로 다운로드를 클릭하십시오.
  4. "네트워크"콘솔에 요청이 표시됩니다 여기에 이미지 설명을 입력하십시오

  5. 마우스 오른쪽 버튼으로 클릭-> 복사-> 컬로 복사

  6. Curl 명령은 다음과 같으며 추가 -o하여 내 보낸 파일을 만듭니다. curl 'https://docs.google.com/spreadsheets/d/1Cjsryejgn29BDiInOrGZWvg/export?format=xlsx&id=1Cjsryejgn29BDiInOrGZWvg' -H 'authority: docs.google.com' -H 'upgrade-insecure-requests: 1' -H 'user-agent: Mozilla/5.0 (X..... -o server.xlsx

해결되었습니다!


해당 링크는 만료되며 한 번에 1 개의 IP 주소에만 해당
bluejayke

세션을 유지하기 위해 자동으로 지속적인 요청을 할 수 있습니다. @bluejayke
Ender

나는 정확히 그 일을하고 또 다른 대답을 쓰기 위해 여기에 왔을 때 당신의 생각에 걸려 넘어졌습니다. 브라우저가없는 서버에 36gb 파일을 다운로드해야하므로 다른 IP에서 작동 함을 확인했습니다. 그리고 랩톱에서 링크를 추출했습니다.
dmitry502

2

다음은 Google 드라이브에서 Google Cloud Linux 셸로 파일을 다운로드하는 방법입니다.

  1. 파일을 PUBLIC에 공유하고 고급 공유를 사용하여 편집 권한으로 공유하십시오.
  2. ID가있는 공유 링크가 제공됩니다. 다음 링크를 참조하십시오 :-drive.google.com/file/d/[ID]/view?usp=sharing
  3. 해당 ID를 복사하여 다음 링크에 붙여 넣으십시오.

googledrive.com/host/[ID]

  1. 위의 링크는 다운로드 링크입니다.
  2. wget을 사용하여 파일을 다운로드하십시오.

wget https://googledrive.com/host/[ID]

  1. 이 명령은 wget 명령을 실행 한 동일한 위치에 확장자가없고 파일 크기가 동일한 [ID]라는 파일 이름을 다운로드합니다.
  2. 실제로 연습에서 압축 폴더를 다운로드했습니다. 그래서 다음을 사용하여 그 어색한 파일의 이름을 바꿨습니다.

mv [ID] 1.zip

  1. 그런 다음

압축 해제 1.zip

우리는 파일을 얻을 것입니다.



Google이 드라이브에서 호스팅을 중단하여 더 이상 작동하지 않습니다.
kgingeri

2

이 작업에 대한 해결책을 찾았습니다 ... 간단히 다음을 사용하십시오.

wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1HlzTR1-YVoBPlXo0gMFJ_xY4ogMnfzDi' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1HlzTR1-YVoBPlXo0gMFJ_xY4ogMnfzDi" -O besteyewear.zip && rm -rf /tmp/cookies.txt

이 작업을 수행 할 때 경고 :`/ C = US / O = Google Trust Services / CN = Google 인터넷 기관 G3 '에서 발급 한 docs.google.com의 인증서를 확인할 수 없습니다 : 발급 기관의 권한을 로컬에서 확인할 수 없습니다. HTTP 요청이 전송되어 응답을 기다리는 중 ... 404 찾을 수 없음 2019-02-08 02:56:30 오류 404 : 찾을 수 없습니다. 해결 방법이 있습니까?
bluejayke 2013

와! 훌륭한 답변과 매우 논리적입니다. 작성해 주셔서 감사합니다. 이 명령을 사용하여 1.3GB 파일을 다운로드했습니다 ...이 명령만으로 Linux 터미널에서 완전 자동 모드입니다. GCP에서도 시도했습니다. 거기에서도 잘 작동합니다. 2020 년 ... 나는 이것이 옳은 방법이라고 믿는다. 비록 그들이 약간의 명령을 바꾸더라도 이것은 시간의 시험을 견뎌야한다.
Atta Jutt

2

더 쉬운 방법이 있습니다.

firefox / chrome 확장 프로그램에서 cliget / CURLWGET을 설치하십시오.

브라우저에서 파일을 다운로드하십시오. 이렇게하면 파일을 다운로드하는 동안 사용 된 쿠키와 헤더를 기억하는 curl / wget 링크가 생성됩니다. 모든 쉘에서이 명령을 사용하여 다운로드


의심 할 여지없이 가장 쉽고 간단한 방법입니다.
c0degeas

2

구글 드라이브에서 파일을 다운하는 쉬운 방법 당신은 또한 colab에 파일을 다운로드 할 수 있습니다

pip install gdown

import gdown

그때

url = 'https://drive.google.com/uc?id=0B9P1L--7Wd2vU3VUVlFnbTgtS2c'
output = 'spam.txt'
gdown.download(url, output, quiet=False)

또는

fileid='0B9P1L7Wd2vU3VUVlFnbTgtS2c'

gdown https://drive.google.com/uc?id=+fileid

문서 https://pypi.org/project/gdown/


멋있는. 그러나 1 년 전에 게시 된 phi의 답변 과 다른 점은 무엇입니까?
umläute

1

2018 년 5 월

안녕하세요이 의견에 따라 ... 내가 파일에서 URL의 목록을 내보낼 떠들썩한 만들 URLS.txt A를 URLS_DECODED.txt Flashget의 같은 일부 가속기에 사용을 (내가 윈도우 및 리눅스를 결합하는 Cygwin에서 사용하십시오)

다운로드를 피하고 최종 링크를 얻기 위해 명령 스파이더가 도입되었습니다 (직접)

GREP HEAD 및 CUT 명령, 최종 링크 처리 및 처리, 스페인어 기반, 아마도 영어로 포트 가능

echo -e "$URL_TO_DOWNLOAD\r" 아마도 \ r은 cywin 일 뿐이며 \ n (break line)으로 대체되어야합니다.

**********user*********** 사용자 폴더입니다

*******Localización*********** 스페인어로, 별표를 지우고 영어로 단어를 보자. HEAD와 CUT 번호를 접근 방식에 맞게 조정하십시오.

rm -rf /home/**********user***********/URLS_DECODED.txt
COUNTER=0
while read p; do 
    string=$p
    hash="${string#*id=}"
    hash="${hash%&*}"
    hash="${hash#*file/d/}"
    hash="${hash%/*}"
    let COUNTER=COUNTER+1
    echo "Enlace "$COUNTER" id="$hash
    URL_TO_DOWNLOAD=$(wget --spider --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id='$hash -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id="$hash 2>&1 | grep *******Localización***********: | head -c-13 | cut -c16-)
    rm -rf /tmp/cookies.txt
    echo -e "$URL_TO_DOWNLOAD\r" >> /home/**********user***********/URLS_DECODED.txt
    echo "Enlace "$COUNTER" URL="$URL_TO_DOWNLOAD
done < /home/**********user***********/URLS.txt

1

다음과 함께 wget을 사용해야합니다.

 https://drive.google.com/uc?authuser=0&id=[your ID without brackets]&export=download

PD. 파일은 공개되어야합니다.


0

skicka 는 Google 드라이브에서 액세스 파일을 업로드하고 다운로드하는 cli 도구입니다.

예 -

skicka download /Pictures/2014 ~/Pictures.copy/2014
10 / 10 [=====================================================] 100.00 % 
skicka: preparation time 1s, sync time 6s
skicka: updated 0 Drive files, 10 local files
skicka: 0 B read from disk, 16.18 MiB written to disk
skicka: 0 B uploaded (0 B/s), 16.18 MiB downloaded (2.33 MiB/s)
skicka: 50.23 MiB peak memory used
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.