wget / curl file besar dari google drive

306

Saya mencoba mengunduh file dari google drive dalam sebuah skrip, dan saya mengalami sedikit kesulitan untuk melakukannya. File yang saya coba unduh ada di sini .

Saya sudah mencari online secara luas dan akhirnya saya berhasil mendapatkan salah satu dari mereka untuk diunduh. Saya mendapatkan UID dari file dan unduhan yang lebih kecil (1.6MB) baik-baik saja, namun file yang lebih besar (3.7GB) selalu dialihkan ke halaman yang menanyakan apakah saya ingin melanjutkan unduhan tanpa scan virus. Bisakah seseorang membantu saya melewati layar itu?

Inilah cara saya membuat file pertama berfungsi -

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

Ketika saya menjalankan hal yang sama di file lain,

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

Saya mendapatkan output berikut - masukkan deskripsi gambar di sini

Saya perhatikan pada baris ketiga hingga terakhir di tautan, ada &confirm=JwkKyang merupakan string 4 karakter acak tetapi menyarankan ada cara untuk menambahkan konfirmasi ke URL saya. Salah satu tautan yang saya kunjungi menyarankan&confirm=no_antivirus tetapi itu tidak berfungsi.

Saya harap seseorang di sini dapat membantu dengan ini!

Arjun
sumber
dapatkah Anda menyediakan file yang curl scriptAnda gunakan untuk mengunduh google drivekarena saya tidak dapat mengunduh file (gambar) yang berfungsi dari skrip inicurl -u username:pass https://drive.google.com/open?id=0B0QQY4sFRhIDRk1LN3g2TjBIRU0 >image.jpg
Kasun Siyambalapitiya
Lihatlah jawaban yang diterima. Saya menggunakan skrip gdown.plgdown.pl https://drive.google.com/uc?export=download&confirm=yAjx&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM index4phlat.tar.gz
Arjun
2
Jangan takut untuk menggulir! Jawaban ini menyediakan skrip python yang sangat bagus untuk diunduh dalam sekali jalan.
Ciprian Tomoiag
./gdrive unduh [FILEID] [--recursive if a a folder] itu akan meminta Anda untuk mengakses url yang diberikan dan menyalin tempel kode token.
roj4s

Jawaban:

59

PERINGATAN : Fungsi ini sudah usang. Lihat peringatan di bawah ini dalam komentar.


Lihat pertanyaan ini: Unduhan langsung dari Google Drive menggunakan Google Drive API

Pada dasarnya Anda harus membuat direktori publik dan mengakses file Anda dengan referensi relatif dengan sesuatu seperti

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

Atau, Anda dapat menggunakan skrip ini: https://github.com/circulosmeos/gdown.pl

guadafan
sumber
5
Cara lain yang baik adalah dengan menggunakan alat baris perintah linux "gdrive" github.com/prasmussen/gdrive
Tobi
1
Saya dapat menggunakan skrip perl Nanolx dalam kombinasi dengan permalink drive google yang dibuat di gdurl.com - Terima kasih!
jadik
14
PERINGATAN: Dukungan hosting web di Google Drive sudah usang. "Mulai 31 Agustus 2015, hosting web di Google Drive untuk pengguna dan pengembang akan dihentikan. Pelanggan Google Apps dapat terus menggunakan fitur ini untuk periode satu tahun hingga 31 Agustus 2016, ketika menyajikan konten melalui googledrive.com/host / doc id akan dihentikan. " googleappsupdates.blogspot.com/2015/08/...
chrish
9
Sayangnya itu tidak berfungsi lagi pada 2018.
Calimo
2
gdown.pl bekerja bagus untuk saya juga. Melihat sekilas pada skrip menunjukkan bahwa itu tidak menggunakan API itu, itu membuat URL baru dengan parameter export=downloadsehingga harus baik untuk masa mendatang kecuali Google mengubah skema URL
Ben Baron
233

Juni 2020

The file_idharus terlihat seperti 0Bz8a_Dbh9QhbNU3SGlFaDg

Anda bisa mendapatkannya dengan mengklik kanan pada file dan kemudian Dapatkan tautan yang dapat dibagikan. Hanya bekerja pada file akses terbuka (Siapa pun yang memiliki tautan dapat melihat). Tidak berfungsi untuk direktori. Diuji di Google Colab. Berfungsi paling baik pada pengunduhan file. Gunakan tar / zip untuk menjadikannya file tunggal.

Contoh: untuk mengunduh file readme dari direktori ini

gdown https://drive.google.com/uc?id=0B7EVK8r0v71pOXBhSUdJWU1MYUk
phi
sumber
9
Hanya menghapus export=download&dari gdown https://drive.google.com/uc?export=download&id=your_file_iddan itu berfungsi seperti pesona
Saravanabalagi Ramachandran
8
Yang ini bekerja pada Juli 2018! Ingatlah untuk membagikan file dan jika Anda memiliki tautan sebagai drive.google.com/open?id=FILE_ID ganti saja "buka" dengan "uc" dan cukup gdown drive.google.com/uc?id=FILE_ID
simo23
7
Bagaimana cara mengunduh folder dari Gdrive menggunakan gdown?
user1
7
Tidak berfungsi pada Agustus 2019. Kesalahan: "Izin ditolak: drive.google.com/uc?id=0B7EVK8r0v71pWEZsZE9oNnFzTm8 Mungkin Anda perlu mengubah izin atas 'Siapa pun yang memiliki tautan'?" Dan itu adalah data CelebA yang dapat diunduh secara publik sehingga harusnya ok. Saya memperoleh tautan unduhan dengan mengeklik 'dapatkan tautan yang dapat dibagikan' kemudian dikatakan 'tautan dibagikan' dan 'siapa pun yang memiliki tautan dapat melihatnya'. Jadi sepertinya izin sudah diberikan namun kesalahan mengatakan izin ditolak. Inilah situs tuan rumah jika Anda ingin mencobanya: mmlab.ie.cuhk.edu.hk/projects/CelebA.html
Kristof
6
Ini adalah satu-satunya solusi dari setengah lusin yang saya coba yang berhasil. Perlu ditingkatkan ke yang pertama. Saya hanya perlu mengubah 'tautan bersama' dari: drive.google.com/open?id=XXXX ke drive.google.com/uc?id=XXXX
deprekate
194

Saya menulis cuplikan Python yang mengunduh file dari Google Drive, diberi tautan yang dapat dibagikan . Ini berfungsi, mulai Agustus 2017 .

Cuplikan tidak menggunakan gdrive , atau Google Drive API. Ini menggunakan modul permintaan .

Saat mengunduh file besar dari Google Drive, satu permintaan GET tidak cukup. Yang kedua diperlukan, dan yang ini memiliki parameter URL tambahan yang disebut konfirmasi , yang nilainya harus sama dengan nilai cookie tertentu.

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)
turdus-merula
sumber
Saya menjalankan cuplikan python snippet.py file_id destination. Apakah ini cara yang benar untuk menjalankannya? Karena jika tujuan adalah folder, saya dilempar kesalahan. Jika saya membuat file yang sulit dan saya menggunakannya sebagai tujuan snippet tampaknya berfungsi dengan baik tetapi kemudian tidak melakukan apa-apa.
Manfredo
2
@Manfredo Anda memerlukan nama file yang ingin Anda simpan file itu, misalnya, $ python snippet.py your_google_file_id /your/full/path/and/filename.xlsx bekerja untuk saya. dalam hal itu tidak berfungsi, apakah Anda memiliki out put disediakan? apakah ada file yang dibuat?
Jeff
1
@ CiprianTomoiaga Saya memiliki 90% bilah kemajuan yang bekerja, menggunakan modul Python tqdm. Saya membuat intisari: gist.github.com/joshtch/8e51c6d40b1e3205d1bb2eea18fb57ae . Sayangnya saya belum menemukan cara yang dapat diandalkan untuk mendapatkan ukuran file total, yang Anda perlukan untuk menghitung% progres dan perkiraan waktu penyelesaian.
joshtch
Juga, jenis otentikasi apa yang digunakan modul permintaan untuk mengakses drive Google? OAuth? Misalnya, di mana dalam kode Anda di atas ini ditangani - permintaan-oauthlib.readthedocs.io/en/latest/… ?
tauseef_CuriousGuy
7
Ini luar biasa! Berikut ini tip untuk drive_File_ID: https // drive.google.com / file / d / "drive_File_ID" / view - antara https ~~ file / d / dan / tampilan tautan unduhan.
Jaeyoung Lee
70

Anda dapat menggunakan alat baris perintah Linux / Unix open source gdrive.

Untuk menginstalnya:

  1. Unduh binernya. Pilih salah satu yang sesuai dengan arsitektur Anda, misalnyagdrive-linux-x64.

  2. Salin ke jalur Anda.

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

Untuk menggunakannya:

  1. Tentukan ID file Google Drive. Untuk itu, klik kanan file yang diinginkan di situs web Google Drive dan pilih "Dapatkan Tautan ...". Ini akan mengembalikan sesuatu seperti https://drive.google.com/open?id=0B7_OwkDsUIgFWXA1B2FPQfV5S8H. Dapatkan string di belakang ?id=dan salin ke clipboard Anda. Itu ID file.

  2. Unduh file. Tentu saja, gunakan ID file Anda sebagai gantinya dalam perintah berikut.

    gdrive download 0B7_OwkDsUIgFWXA1B2FPQfV5S8H
    

Pada penggunaan pertama, alat ini perlu mendapatkan izin akses ke Google Drive API. Untuk itu, ia akan menunjukkan kepada Anda tautan yang harus Anda kunjungi di peramban, dan kemudian Anda akan mendapatkan kode verifikasi untuk menyalin & menempel kembali ke alat. Pengunduhan kemudian dimulai secara otomatis. Tidak ada indikator progres, tetapi Anda dapat mengamati progres dalam manajer file atau terminal kedua.

Sumber: Komentar Tobi tentang jawaban lain di sini.

 

Trik tambahan: pembatasan tingkat. Untuk mengunduh dengan gdrivekecepatan maksimum terbatas (untuk tidak membanjiri jaringan ...), Anda dapat menggunakan perintah seperti ini ( pvadalah PipeViewer ):

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

Ini akan menunjukkan jumlah data yang diunduh ( -b) dan laju pengunduhan ( -r) dan membatasi laju itu hingga 90 kiB / s ( -L 90k).

tanius
sumber
pesan kesalahan: "Batas Harian untuk Penggunaan Tidak Diautomasi Melebihi. Penggunaan berkelanjutan memerlukan pendaftaran.", kode: 403
Nianliang
@Nianliang Belum mengalami ini, tapi ini dugaan: Anda menggunakan gdrive untuk mengunduh file yang dapat diakses publik, jadi tidak akan meminta Anda untuk otentikasi saat pertama kali digunakan. Coba file non-publik terlebih dahulu, pastikan otentikasi berhasil (seperti dijelaskan dalam jawaban: "Pada penggunaan pertama, ..."). Apakah itu membantu?
tanius
3
Tidak dapat memperoleh kode verifikasi. Dapatkan kesalahan "Masuk dengan Google untuk sementara dinonaktifkan untuk aplikasi ini. Aplikasi ini belum diverifikasi oleh Google untuk menggunakan Google Masuk."
useranon
1
Pesan kesalahan yang sama di sini: "Aplikasi ini belum diverifikasi oleh Google untuk menggunakan Google Masuk."
gebbissimo
1
@ useranon: Coba solusi ini: github.com/gdrive-org/gdrive/issues/533#issuecomment-596336395 , Anda perlu membuat akun layanan google dan berbagi file / folder dengan alamat akun layanan ini. Saya melakukannya. Berfungsi sejak 17/04/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}"  

Bagaimana cara kerjanya?
Dapatkan file cookie dan kode html dengan curl.
Pipa html ke grep dan sed dan cari nama file.
Dapatkan kode konfirmasi dari file cookie dengan awk.
Akhirnya unduh file dengan cookie diaktifkan, konfirmasi kode dan nama file.

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

Jika Anda tidak perlu variabel nama file, dapat menebaknya
-L Ikuti pengalihan
-O Remote-nama
-J Remote-header-nama

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}" 

Untuk mengekstrak ID file Google dari URL, Anda dapat menggunakan:

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

ATAU

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 
lapinpt
sumber
Dilakukan dengan sangat baik. Singkirkan peringatan virus pada file 5GB + ketika semua jawaban lain gagal.
1
Ini luar biasa. Saya memang harus menambahkan --insecureopsi ke kedua permintaan ikal untuk membuatnya berfungsi.
Taylor R
@lapinpt bagaimana cara saya menambahkan fungsionalitas RESUME?
steven7mwesigwa
Bisakah kita menyingkirkan google id jika kita memiliki tautan publik ke file tersebut?
oarfish
42

Pembaruan pada Maret 2018.

Saya mencoba berbagai teknik yang diberikan dalam jawaban lain untuk mengunduh file saya (6 GB) langsung dari Google drive ke AWS ec2 saya contoh tetapi tidak satupun dari mereka bekerja (mungkin karena mereka sudah tua).

Jadi, untuk informasi orang lain, inilah cara saya melakukannya dengan sukses:

  1. Klik kanan pada file yang ingin Anda unduh, klik bagikan, di bawah bagian berbagi tautan, pilih "siapa pun dengan tautan ini dapat mengedit".
  2. Salin tautannya. Seharusnya dalam format ini:https://drive.google.com/file/d/FILEIDENTIFIER/view?usp=sharing
  3. Salin bagian FILEIDENTIFIER dari tautan.
  4. Salin skrip di bawah ini ke file. Ini menggunakan ikal dan proses cookie untuk mengotomatiskan pengunduhan file.

    #!/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. Seperti yang ditunjukkan di atas, rekatkan FILEIDENTIFIER dalam skrip. Ingatlah untuk menyimpan tanda kutip ganda!

  6. Berikan nama untuk file di tempat FILENAME. Ingatlah untuk menyimpan tanda kutip ganda dan juga menyertakan ekstensi dalam FILENAME (misalnya, myfile.zip).
  7. Sekarang, simpan file dan buat file tersebut dapat dieksekusi dengan menjalankan perintah ini di terminal sudo chmod +x download-gdrive.sh .
  8. Jalankan skrip menggunakan `./download-gdrive.sh".

PS: Berikut adalah inti Github untuk skrip yang diberikan di atas: https://gist.github.com/amit-chahar/db49ce64f46367325293e4cce13d2424

Amit Chahar
sumber
untuk wget ganti -cdengan --save-cookiesdan -bdengan--load-cookies
untore
3
membenarkan ini bekerja untuk saya 👍, diedit sedikit untuk kejelasan
Jeff Atwood
1
Bekerja pada Januari 2019. Saya perlu menambahkan "tanda kutip di ${filename}baris terakhir.
Jimbo
> Jalankan skrip menggunakan ./download-gdrive.sh" Do not be like me and try to run the script by typing download-gdrive.sh , the . / `Tampaknya wajib.
Ambroise Rabier
Bekerja pada Mei 2019
Kshitij Bajracharya
29

Inilah cara cepat untuk melakukan ini.

Pastikan tautan dibagikan, dan akan terlihat seperti ini:

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

Kemudian, salin FILEID itu dan gunakan seperti ini

wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O FILENAME
thouliha
sumber
2
Hai, Terima kasih atas jawabannya. Jika Anda melihat file pada tautan yang saya bagikan, Anda akan melihat bahwa sementara file dibagikan, mereka tidak memiliki tag 'authuser = 0' dalam tautan. Metode Anda tidak berfungsi pada file yang disediakan! Arjun
Arjun
2
Bahkan tidak mencoba dengan akses publik, yang ini berfungsi dengan baik untuk berbagi file tautan saja. Digunakan seperti ini:wget 'https://docs.google.com/uc?export=download&id=SECRET_ID' -O 'filename.pdf'
Sampo Sarrala - codidact.org
Tidak berfungsi pada 2018, saya mendapatkan halaman web antivirus memindai bukan file.
Calimo
7
Memintas pemindai antivirus untuk saya pada tahun 2018 ketika digunakan dengan -rbendera wget. Begitulahwget --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=FILE_ID' -O 'filename'
Artem Pelenitsyn
1
Bekerja untuk saya pada 10/2019 dan merupakan solusi sempurna bagi saya untuk memasukkan file ke dalam wadah Docker yang sedang berjalan yang hampir tidak memiliki aplikasi utilitas yang menjalankannya.
ammills01
23

Perilaku default google drive adalah untuk memindai file untuk virus jika file terlalu besar itu akan meminta pengguna dan memberi tahu dia bahwa file tersebut tidak dapat dipindai.

Saat ini satu-satunya solusi yang saya temukan adalah berbagi file dengan web dan membuat sumber daya web.

Kutipan dari halaman bantuan google drive:

Dengan Drive, Anda dapat membuat sumber daya web - seperti file HTML, CSS, dan Javascript - dapat dilihat sebagai situs web.

Untuk meng-host halaman web dengan Drive:

  1. Buka Drive di drive.google.com dan pilih file.
  2. Klik tombol Bagikan di bagian atas halaman.
  3. Klik Tingkat Lanjut di sudut kanan bawah kotak berbagi.
  4. Klik Ubah ....
  5. Pilih Di - Publik di web dan klik Simpan .
  6. Sebelum menutup kotak berbagi, salin ID dokumen dari URL di bidang di bawah "Tautan untuk dibagikan". ID dokumen adalah serangkaian huruf besar dan kecil dan angka di antara garis miring di URL.
  7. Bagikan URL yang terlihat seperti "www.googledrive.com/host/[doc id] di mana [doc id] diganti dengan ID dokumen yang Anda salin pada langkah 6. Sekarang
    siapa pun dapat melihat halaman web Anda.

Ditemukan di sini: https://support.google.com/drive/answer/2881970?hl=id

Jadi misalnya ketika Anda membagikan file di google drive ke publik sharelink terlihat seperti ini:

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

Lalu Anda menyalin id file dan membuat tautan googledrive.com yang terlihat seperti ini:

https://www.googledrive.com/host/0B5IRsLTwEO6CVXFURmpQZ1Jxc0U
Alex
sumber
1
@ FıratKÜÇÜK Anda yakin memiliki format url yang tepat? (perhatikan www.googledrive.com dan bukan drive.google.com) Saya baru saja mencoba dan berhasil.
Charles Forest
File saya lebih dari 50 MB. ia meminta konfirmasi pemindaian virus. Jadi solusinya tidak cocok untuk kasus saya. Sebaliknya saya menggunakan solusi aplikasi konsol "gdrive".
Fırat KÜÇÜK
@ FıratKÜÇÜK Saya baru saja berhasil mengunduh file 200+ Mb dengan metode ini yang biasanya akan memicu pemeriksaan virus. Saya mendapat ID dari klik kanan> "dapatkan tautan yang dapat dibagikan".
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
1
@Alex http 502 untuk yang itu googledrive.com/host/0BwPIpgeJ2AdnUGUzVGJuak5abDg
user2284570
11
Fitur ini sudah usang dan tidak lagi didukung
Daniel G
19

Cara mudah:

(jika Anda hanya perlu mengunduh sekali saja)

  1. Buka halaman web Google Drive yang memiliki tautan unduhan
  2. Buka konsol browser Anda dan buka tab "jaringan"
  3. Klik tautan unduhan
  4. Tunggu file mulai mengunduh, dan temukan permintaan yang sesuai (harus menjadi yang terakhir dalam daftar), maka Anda dapat membatalkan unduhan
  5. Klik kanan pada permintaan dan klik "Copy as cURL" (atau yang serupa)

Anda harus berakhir dengan sesuatu seperti:

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

Lekatkan di konsol Anda, tambahkan > my-file-name.extensionsampai akhir (jika tidak akan menulis file ke konsol Anda), lalu tekan enter :)


sumber
Bekerja pada Juni 2019
techkuz
Bekerja pada Feb 2020
Jivan
12

Berdasarkan jawaban dari Roshan Sethia

Mei 2018

Menggunakan WGET :

  1. Buat skrip shell bernama wgetgdrive.sh seperti di bawah ini:

    #!/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. Berikan izin yang tepat untuk menjalankan skrip

  3. Di terminal, jalankan:

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

    sebagai contoh:

    ./wgetgdrive.sh 1lsDPURlTNzS62xEOAIG98gsaW6x2PYd2 images.zip
    
Aatif Khan
sumber
1
Ini berfungsi seperti CHARM, terima kasih, dan untuk memudahkan:chmod 770 wgetgdrive.sh
Mohamed Kawsara
8

--DUNGSI--

Untuk mengunduh file, pertama-tama dapatkan youtube-dlpython dari sini:

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

atau pasang dengan pip:

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

MEMPERBARUI:

Saya baru tahu ini:

  1. Klik kanan pada file yang ingin Anda unduh dari drive.google.com

  2. Klik Get Sharable link

  3. Hidupkan Link sharing on

  4. Klik Sharing settings

  5. Klik pada dropdown atas untuk opsi

  6. Klik Lebih Banyak

  7. Pilih [x] On - Anyone with a link

  8. Salin tautan

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

Salin id setelah https://drive.google.com/file/d/:

3PIY9dCoWRs-930HHvY-3-FOOPrIVoBAR

Rekatkan ini ke baris perintah:

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

Rekatkan id di belakang 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)

Semoga ini bisa membantu

jturi
sumber
1
hai terima kasih, saya sudah mencoba ini dan sedang mengunduh ketika saya menjalankan dari command prompt, tetapi apakah ada cara untuk mendapatkan "tautan langsung" yang sebenarnya seperti untuk akses di server? Saya mencoba menjalankannya dengan simpul {spawn}, tetapi kemudian harus mengunduh ke server simpul, dan dari sana mengunduhnya lagi, apakah ada cara untuk mendapatkan tautan unduhan langsung dari google drive? Tautan apa yang mereka gunakan?
bluejayke
Saya harus menggunakan metode ini sekarang jadi saya akan mencoba untuk mengotomatisasi sepenuhnya. Dapatkan saja tautan google dan skrip Python akan melakukan sisanya. Saya pikir saya akan menggunakan selenium untuk melakukan ini. Akan memperbarui solusi saya ketika sedang berfungsi.
jturi
Memperbarui jawaban saya. Ini sekarang sesederhana 2 klik untuk mengunduh file apa pun dengan youtube-dl.
jturi
7

Tidak ada jawaban yang mengusulkan apa yang berfungsi untuk saya pada Desember 2016 ( sumber ):

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

asalkan file Google Drive telah dibagikan dengan mereka yang memiliki tautan dan {FileID}merupakan string ?id=di belakang dalam URL bersama.

Meskipun saya tidak memeriksa dengan file besar, saya percaya itu mungkin berguna untuk diketahui.

mmj
sumber
Hmmm ... tidak bekerja untuk saya :( Hanya mengunduh konten web - bukan file
kgingeri
1
curl -L -o {filename} https://drive.google.com/uc?id={FileID}bekerja untuk saya, terima kasih!
Dário
Ini tidak berhasil untuk saya. Tautan saya di bawah (siapa pun yang memiliki tautan dapat melihat): drive.google.com/file/d/0B7Jh6M91b83bdFlWX2RIU2hYSWM/… . Saya mencoba: <code> curl -O -J -L drive.google.com/uc?id=0B7Jh6M91b83bdFlWX2RIU2hYSWM </code> dan saya mendapatkan hasil ini: curl: (56) Menerima kode HTTP 403 dari proxy setelah CONNECT
Steve
7
Hanya berfungsi untuk file hingga 25MB, file yang lebih besar memberikan halaman peringatan pemindaian virus
cen
6

Cara termudah adalah:

  1. Buat tautan unduhan dan salin fileID
  2. Unduh dengan 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
Gila
sumber
1
Terima kasih banyak! Bermanfaat luar biasa
Nicholas Pipitone
6

Jawaban di atas sudah kedaluwarsa untuk April 2020, karena google drive sekarang menggunakan redirect ke lokasi sebenarnya file.

Bekerja pada April 2020 di macOS 10.15.4 untuk dokumen publik:

# 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>
danieltan95
sumber
1
download-google-2bekerja untukku. File saya berukuran 3G. Terima kasih @ danieltan95
Saurabh Kumar
Saya memperbarui download-google-2ikal terakhir untuk ini curl -L -b .tmp/$1cookies -C - "https://drive.google.com/uc?export=download&confirm=$code&id=$1" -o $2;dan sekarang dapat melanjutkan pengunduhan.
ssi-anik
Sepertinya ada yang salah dengan unduhan pada kecepatan rendah. pendekatan lain yang saya temukan. qr.ae/pNrPaJ
ssi-anik
5

Saya memiliki masalah yang sama dengan Google Drive.

Inilah cara saya memecahkan masalah menggunakan Links 2 .

  1. Buka browser di PC Anda, navigasikan ke file Anda di Google Drive. Berikan tautan publik file Anda.

  2. Salin tautan publik ke clipboard Anda (mis. Klik kanan, Salin alamat tautan)

  3. Buka Terminal. Jika Anda mengunduh ke PC / server / mesin lain, Anda harus menggunakan SSH sebagai titik ini

  4. Instal Tautan 2 (metode debian / ubuntu, gunakan distro Anda atau yang setara dengan OS)

    sudo apt-get install links2

  5. Tempel tautan ke terminal Anda dan buka dengan Tautan seperti:

    links2 "paste url here"

  6. Arahkan ke tautan unduhan dalam Tautan menggunakan Tombol Panah Anda dan tekan Enter

  7. Pilih nama file dan itu akan mengunduh file Anda

mattbell87
sumber
Linksbenar-benar berhasil! Dan itu jauh lebih baik daripadaw3m
alvas
1
Ini adalah satu-satunya hal yang berhasil untuk saya! Februari 2019. Aplikasi gdown di komentar sebelumnya dihosting oleh tidak lain dari google docs, jadi tidak mungkin untuk mengunduh juga.
Steven
5

Gunakan youtube-dl !

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

Anda juga dapat lulus --get-urluntuk mendapatkan URL unduhan langsung.

aularon
sumber
1
@Ender masih bekerja untuk saya youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [GoogleDrive] ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: Downloading webpage. mungkin Anda memiliki versi kedaluwarsa youtube-dlatau format tautannya tidak dikenali karena suatu alasan ... Coba gunakan format di atas untuk mengganti id dengan id file dari URL asli Anda
aularon
5

Saya telah menggunakan cuplikan ikal dari @ Amit Chahar yang memposting jawaban yang baik di utas ini. Saya merasa berguna untuk meletakkannya di fungsi bash daripada .shfile yang terpisah

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
}

yang dapat dimasukkan dalam misalnya a ~/.bashrc(setelah sumbernya tentu saja jika tidak bersumber secara otomatis) dan digunakan dengan cara berikut

   $ curl_gdrive 153bpzybhfqDspyO_gdbcG5CMlI19ASba imagenet.tar
saya
sumber
Ini mungkin jawaban terbaik ... python gdown sangat berat dibandingkan. Saya harus mengatakan saya cukup tidak puas dengan gdrive ...
smaudet
1
Anda tidak perlu -f atau -r dalam perintah rm Anda. Jika Anda mengajar orang untuk selalu "rm -rf", mereka mungkin akan menghilangkan hal-hal yang ingin mereka pertahankan ...
josch
4

Ada klien multi-platform open-source, yang ditulis dalam Go: drive . Ini cukup bagus dan berfitur lengkap, dan juga sedang dalam pengembangan aktif.

$ 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`
Utgarda
sumber
4

Semua jawaban di atas tampaknya mengaburkan kesederhanaan jawaban atau memiliki nuansa yang tidak dijelaskan.

Jika file dibagikan secara publik, Anda dapat membuat tautan unduhan langsung dengan hanya mengetahui ID file. URL harus dalam bentuk " https://drive.google.com/uc?id=[FILEID[&export=download " Ini berfungsi mulai 11-22-2019. Ini tidak mengharuskan penerima untuk masuk ke google tetapi memang membutuhkan file untuk dibagikan secara publik.

  1. Di browser Anda, navigasikan ke drive.google.com.

  2. Klik kanan pada file tersebut, dan klik "Dapatkan tautan yang dapat dibagikan"

Klik kanan dapatkan tautan yang dapat dibagikan

  1. Buka tab baru, pilih bilah alamat, dan tempelkan konten clipboard Anda yang akan menjadi tautan yang dapat dibagikan. Anda akan melihat file ditampilkan oleh pemirsa Google. ID adalah nomor tepat sebelum komponen "Lihat" URL:

masukkan deskripsi gambar di sini

  1. Edit URL sehingga berada dalam format berikut, ganti "[FILEID]" dengan ID file yang Anda bagikan:

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

  2. Itu tautan unduhan langsung Anda. Jika Anda mengekliknya di browser, file sekarang akan "didorong" ke browser Anda, membuka dialog unduhan, memungkinkan Anda untuk menyimpan atau membuka file. Anda juga dapat menggunakan tautan ini dalam skrip unduhan Anda.

  3. Jadi perintah curl yang setara adalah:

curl -L "https://drive.google.com/uc?id=AgOATNfjpovfFrft9QYa-P1IeF9e7GWcH&export=download" > phlat-1.0.tar.gz
CoderBlue
sumber
2
Ini tidak berfungsi untuk file besar: dapatkan kesalahanGoogle 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
Ini berhasil. Terima kasih! Setelah mengonversi tautan ke format itu, Anda juga dapat menggunakan gdown seperti yang ditunjukkan dalam jawaban lain
Harry M
3

Saya tidak dapat membuat skrip perl Nanoix berfungsi, atau contoh ikal lainnya yang telah saya lihat, jadi saya mulai mencari ke dalam api sendiri dengan python. Ini berfungsi baik untuk file kecil, tetapi file besar tersendat melewati ram yang tersedia jadi saya menemukan beberapa kode chunking bagus yang menggunakan kemampuan api untuk mengunduh sebagian. Intinya di sini: https://gist.github.com/csik/c4c90987224150e4a0b2

Perhatikan sedikit tentang mengunduh file json client_secret dari antarmuka API ke direktori lokal Anda.

Sumber
$ 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) 
robot
sumber
3

Ini skrip bash kecil yang saya tulis yang berfungsi hari ini. Ini berfungsi pada file besar dan dapat melanjutkan file yang diambil sebagian juga. Dibutuhkan dua argumen, yang pertama adalah file_id dan yang kedua adalah nama file output. Perbaikan utama atas jawaban sebelumnya di sini adalah bahwa ia bekerja pada file besar dan hanya membutuhkan alat yang tersedia secara umum: bash, curl, tr, grep, du, cut dan 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
Grey Christoforo
sumber
Selamat datang di SO. Jika Anda telah menggunakan referensi apa pun untuk tujuan ini, harap sertakan dalam jawaban Anda. Bagaimanapun, pekerjaan yang bagus +1
M--
3

Ini berfungsi pada Nov 2017 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
ppetraki
sumber
Meskipun ada yang menyatakan "url sumber" dan ada beberapa parsing saya tidak mencoba memahaminya bekerja dengan langsung menggunakan apa yang disebut fileid di sini dan di jawaban lain sebagai parameter pertama.
Januari
@jan Itu mungkin berarti ada lebih dari satu gaya url. Saya senang itu masih berhasil untuk Anda semua.
ppetraki
3

Setelah dipusingkan dengan sampah ini. Saya telah menemukan cara untuk mengunduh file manis saya dengan menggunakan alat pengembang-krom.

  1. Di tab google docs Anda, Ctr + Shift + J (Pengaturan -> Alat pengembang)
  2. Beralih ke tab Jaringan
  3. Pada file dokumen Anda, klik "Unduh" -> Unduh sebagai CSV, xlsx, ....
  4. Ini akan menunjukkan kepada Anda permintaan di konsol "Jaringan" masukkan deskripsi gambar di sini

  5. Klik kanan -> Salin -> Salin sebagai Curl

  6. Perintah Curl Anda akan seperti ini, dan tambahkan -ountuk membuat file yang diekspor. 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

Terpecahkan!

Ender
sumber
tautan itu kedaluwarsa dan hanya untuk 1 alamat ip pada satu waktu
bluejayke
Anda bisa membuat permintaan konstan diam untuk menjaga sesi tetap hidup. @bluejayke
Ender
Saya melakukan hal itu dan ketika datang ke sini untuk menulis jawaban lain, menemukan jawaban Anda. Saya mengonfirmasi bahwa ia berfungsi dengan IP yang berbeda karena saya perlu mengunduh file 36gb ke server yang tidak memiliki browser. Dan saya mengekstrak tautan dari laptop saya.
dmitry502
2

Ini adalah solusi yang saya gunakan untuk mengunduh file dari Google Drive ke shell Google Cloud Linux saya.

  1. Bagikan file ke PUBLIC dan dengan izin Edit menggunakan berbagi lanjutan.
  2. Anda akan mendapatkan tautan berbagi yang akan memiliki ID. Lihat tautan: - drive.google.com/file/d/[ID[/view?usp=sharing
  3. Salin ID itu dan tempel di tautan berikut: -

googledrive.com/host/[ID]

  1. Tautan di atas adalah tautan unduhan kami.
  2. Gunakan wget untuk mengunduh file: -

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

  1. Perintah ini akan mengunduh file dengan nama [ID] tanpa ekstensi dan tetapi dengan ukuran file yang sama di lokasi yang sama di mana Anda menjalankan perintah wget.
  2. Sebenarnya, saya mengunduh folder zip dalam praktik saya. jadi saya mengganti nama file canggung itu menggunakan: -

mv [ID] 1.zip

  1. lalu gunakan

unzip 1.zip

kami akan mendapatkan file.

Vikas Gautam
sumber
http 502 untuk yang itu googledrive.com/host/0BwPIpgeJ2AdnUGUzVGJuak5abDg
user2284570
Google telah mengambil hosting dari drive, jadi ini tidak lagi berfungsi.
kgingeri
2

Saya menemukan solusi untuk ini ... Cukup gunakan yang berikut ini

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
Roshan Sethia
sumber
ketika melakukan ini, saya mendapatkan PERINGATAN: tidak dapat memverifikasi sertifikat docs.google.com, yang dikeluarkan oleh `/ C = US / O = Layanan Kepercayaan Google / CN = Google Internet Authority G3 ': Tidak dapat memverifikasi otoritas emiten secara lokal. Permintaan HTTP terkirim, menunggu respons ... 404 Tidak Ditemukan 2019-02-08 02:56:30 KESALAHAN 404: Tidak Ditemukan. ada solusi?
bluejayke
WOW! Jawaban yang bagus dan sangat logis. Terima kasih telah menulisnya. Mengunduh file 1,3 GB menggunakan perintah ini ... Mode sepenuhnya otomatis dari terminal linux hanya dengan perintah ini. Juga mencoba di GCP. Bekerja dengan baik di sana juga. Tahun 2020 ... Saya percaya ini adalah cara yang benar ... bahkan jika mereka mengubah sedikit perintah, ini harus diuji waktu.
Atta Jutt
2

Ada cara yang lebih mudah.

Instal cliget / CURLWGET dari ekstensi firefox / chrome.

Unduh file dari browser. Ini menciptakan tautan ikal / wget yang mengingat cookie dan header yang digunakan saat mengunduh file. Gunakan perintah ini dari shell apa saja untuk mengunduh

Ya
sumber
Ini tidak diragukan lagi cara termudah dan paling sederhana.
c0degeas
2

cara mudah untuk down file dari google drive Anda juga dapat mengunduh file di colab

pip install gdown

import gdown

Kemudian

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

atau

fileid='0B9P1L7Wd2vU3VUVlFnbTgtS2c'

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

Dokumen https://pypi.org/project/gdown/

Jadli
sumber
keren. tetapi apa bedanya dengan jawaban phi yang diposting lebih dari setahun sebelum jawaban Anda?
umläute
1

Mei 2018 BEKERJA

Hai berdasarkan komentar ini ... saya membuat bash untuk mengekspor daftar URL dari file URLS.txt ke URLS_DECODED.txt yang digunakan dalam beberapa akselerator seperti flashget (saya menggunakan cygwin untuk menggabungkan windows & linux)

Command spider diperkenalkan untuk menghindari unduhan dan mendapatkan tautan akhir (langsung)

Command GREP HEAD dan CUT, proses dan dapatkan tautan terakhir, Berbasis di bahasa Spanyol, mungkin Anda bisa port ke Bahasa Inggris BAHASA

echo -e "$URL_TO_DOWNLOAD\r" mungkin \ r hanya cywin dan harus diganti dengan \ n (break line)

**********user*********** adalah folder pengguna

*******Localización*********** adalah dalam bahasa spanyol, bersihkan asterik dan biarkan kata dalam Bahasa Inggris Lokasi dan sesuaikan angka KEPALA dan CUT untuk pendekatan yang tepat.

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
Sk.
sumber
1

Anda hanya perlu menggunakan wget dengan:

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

PD File harus publik.

José Vallejo
sumber
0

skicka adalah alat cli untuk mengunggah, mengunduh file akses dari google-drive.

contoh -

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
Shubham Bhardwaj
sumber