Jak pobrać folder z dysku Google za pomocą terminala?


59

Chcę pobrać folder z dysku Google za pomocą terminala? Czy istnieje jakiś sposób, aby to zrobić? Próbowałem tego:

$ wget "https://drive.google.com/folderview?id=0B-Zc9K0k9q-WWUlqMXAyTG40MjA&usp=sharing"

Ale to jest pobieranie tego pliku tekstowego: folderview?id=0B-Zc9K0k9q-WdEY5a1BCUDBaejQ&usp=sharing. Czy jest jakiś sposób, aby pobrać folder dysku Google z terminala?



Sprawdziłem je, ale nie obsługują arkusza kalkulacyjnego Google. Ponieważ potrzebuję dostępu do arkusza kalkulacyjnego i ocamlfusemogę sobie z tym poradzić, pomyślałem o pobraniu ich za każdym razem, gdy będę ich potrzebować, poświęcając czas na zamontowanie. Ale nie mam innych opcji.
user22180,

Ustaw ustawienie folderu na „każdy w Internecie może znaleźć i wyświetlić”, wtedy będziesz mógł pobrać plik wget https://googledrive.com/host/file_id, który jest dla Ciebie wget https://googledrive.com/host/0B-Zc9K0k9q-WdEY5a1BCUDBaejQ. Rozwiązanie wyjaśnione tutaj bardziej szczegółowo .
Paul Rougieux

Jakieś nowe odpowiedzi na to w minionym czasie? mamy jedną opcję poniżej.
Matan

Odpowiedzi:


48

Udało mi się pobrać publiczny udostępniony plik za pomocą tego polecenia:

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

Gdzie FILEIDnależy zastąpić rzeczywistym identyfikatorem pliku. FILENAMEto ścieżka / nazwa pliku, w którym będą przechowywane pliki do pobrania.

Uwaga: nie można użyć ID folderu zamiast ID pliku. Użyłem źródła widoku w widoku folderu, w którym mogłem znaleźć następujący kod HTML <div id="entry-0B0jxxycBojSwVW.... Ciąg rozpoczynający się od 0Bto fileid.


4
To zadziałało dla mnie świetnie! musiałem zamiast tego skorzystać z drive.google.com
thouliha,

ponieważ miałem duży plik, ciągle otrzymywałem ostrzeżenie skanera antywirusowego Google (że nie może skanować). Nie znalazłem rozwiązania tego problemu. Uświadomiłem sobie jednak, że mogę po prostu scpprzesłać plik na mój serwer (co wymagało takiego pobierania)
Matthias

2
to już nie działa z Google Drive ...
loretoparisi

2
To nie zadziała w przypadku większych plików. Ta odpowiedź w przypadku przepełnienia stosu działa jak urok: stackoverflow.com/a/32742700/4773609
HG Sur

1
@HGSur Moja odpowiedź poniżej działa również w przypadku dużych plików.
FrankerZ

22

W przypadku plików dysku Google, które są zbyt duże i pojawia się komunikat o błędzie „Google nie może wykonać skanowania antywirusowego”, oto rozwiązanie, którego użyłem:

Najpierw spróbuj pobrać plik tutaj (wykonaj powyższe kroki):

$ wget --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_]+).*/Code: \1\n/p'

Następnie, po otrzymaniu kodu (zostanie on wyprowadzony na stronę internetową i wyprowadzony przy użyciu sed powyżej), użyj następującego adresu URL:

$ wget --load-cookies cookies.txt 'https://docs.google.com/uc?export=download&confirm=CODE_FROM_ABOVE&id=FILEID'

Dodaj -O FILENAMEdo poprzedniej instrukcji wget, aby określić nazwę pliku, jeśli chcesz zapisać go do pliku.


To działa jak urok! Jeśli dodasz - wget-disposition wget automatycznie nada plikowi poprawną nazwę
Waleed Hamra

8

Nowszy, wieloplatformowy klient open source, napisany w Go o nazwie drive, jest całkiem fajny i w pełni funkcjonalny, a także jest w fazie rozwoju.

Przykłady

Polecenie pull pobiera dane z Dysku Google, który nie istnieje lokalnie, i usuwa dane lokalne, które nie są obecne na Dysku Google. Uruchom go bez żadnych argumentów, aby wyciągnąć wszystkie pliki z bieżącej ścieżki:

$ drive pull

Obsługiwane jest również ciągnięcie przez mecze

$ cd ~/myDrive/content/2015
$ drive pull --matches vines docx

Zobacz powyższy link w celu uzyskania dalszych przykładów, to tylko wierzchołek góry lodowej.


1
To narzędzie nie jest obsługiwane od września 2017 r.
Mateusz Konieczny

Tak, ale nadal działa i pobrać cały katalog, to jest to najlepsze rozwiązanie: drive pull 'Colab Notebooks/sorted/models/resnet-101-90.9-max-acc'. Inne metody to ból w tyłek.
Avio

7

wgetmoże obsługiwać tylko bezpośrednie linki, ale nie jest to główny problem w tym przypadku. Dysk Google oczekuje na uwierzytelnienie przed pobraniem pliku. Oznacza to, że będziesz musiał użyć przeglądarki internetowej, aby pobrać plik. Istnieje kilka przeglądarek internetowych dla terminala, na przykład ryś .

Jeśli zdecydujesz się udostępnić swój plik publicznie (aby każdy mógł go pobrać), możesz skorzystać z jednej z licznych usług bezpośredniego połączenia z Dyskiem Google. Uważam, że powinny wytworzyć linki, które będą działać z wget. Oto lista dwóch znalezionych podczas wyszukiwania informacji: http://gdriveurl.com/ http://gdurl.com/

Zakładając, że używasz Linuksa, istnieje klient open source dla Dysku Google, który może być wart uwagi.


lynx wyświetla „przekierowanie” przez ponad 5 minut podczas próby uzyskania dostępu do dysku. „Link bezpośredni do Dysku Google” jest w porządku, ale nie chcę udostępniać go wszystkim. Użyłem Grivea Ocamlfuse, ale nie może uzyskać dostępu do arkuszy kalkulacyjnych
user22180

Potwierdzono, że link „pobierz” z gdriveurl działał z wget
Randall

odnośnie sugestii klienta open source: z mojego doświadczenia w korzystaniu z tego klienta gdrive i podobnego narzędzia o nazwie rclone miałem lepsze doświadczenia z rclone.
7yl4r

7

W repozytorium ubuntu 17.04 istnieje gigantyczny program o nazwie: rclone

$ sudo apt update && sudo apt install rclone

$ rclone config --> than follow the steps to setup your gdrive

teraz możesz klonować i synchronizować wszystko, co chcesz. Projekty obsługują wszystkie rodzaje chmur .. fe:

$ rclone sync /home/<usrname>/Desktop/yourfolder gdrivename:yourfolder

[1]: https://rclone.org

(btw przesłałem około 600 GB i przesłałem 1 TB z rclone z gdrive na gdrive w ciągu kilku godzin, gdrive na ubuntu i ubuntu na gdrive .. i działa wspaniale przez kilka tygodni z rzędu !!

https://forum.rclone.org/t/can-copy-between-google-drive-accounts-without-download-and-upload-files/969/8

)


5

możesz spróbować, jeśli używasz Firefoxa, instalując dodatek Cliget. Dla każdego pliku, który chcesz pobrać, pokaż program curl, wget lub aria2 bezpośredni link do pobrania tego pliku. Używam tego, aby pobierać pliki na inne maszyny za pośrednictwem ssh, ponieważ znacznie szybciej jest dla mnie, aby pobrać bezpośrednio na komputer zdalny, a następnie przesłać ten plik z mojego komputera. Działa to również z Dropbox, gdrive itp.


5

Możesz użyć narzędzia wiersza poleceń Linux / Unix typu open source gdrive.

Aby zainstalować:

  1. Pobierz plik binarny. Wybierz na przykład ten, który pasuje do Twojej architekturygdrive-linux-x64.

  2. Skopiuj go na swoją ścieżkę.

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

Aby go użyć:

  1. Określ identyfikator folderu Dysku Google. W tym celu przejdź do folderu, aby pobrać, za pomocą klienta internetowego drive.google.com. Teraz spójrz na adres URL w pasku adresu przeglądarki, wyświetli się coś takiego https://drive.google.com/drive/folders/0B7_OwkDsUIgFWXA1B2FPQfV5S8H. Uzyskaj ciąg za ostatnim /i skopiuj go do schowka. To jest identyfikator folderu.

  2. Pobierz folder. Oczywiście zamiast tego użyj identyfikatora folderu w następującym poleceniu.

    gdrive download --recursive 0B7_OwkDsUIgFWXA1B2FPQfV5S8H
    

Przy pierwszym użyciu narzędzie będzie musiało uzyskać uprawnienia dostępu do interfejsu API Dysku Google. W tym celu pokaże Ci link, który musisz odwiedzić w przeglądarce, a następnie otrzymasz kod weryfikacyjny, aby skopiować i wkleić z powrotem do narzędzia. Pobieranie rozpocznie się automatycznie. Nie ma wskaźnika postępu, ale można obserwować postęp w menedżerze plików lub drugim terminalu.

Źródło: Komentarz Tobi w pytaniu stackoverflow.com. Odpowiedź na podstawie mojej podobnej odpowiedzi tam .


4

Pobierz plik binarny z poniższego linku

chmod +x <binary>
./drive download id

Wygeneruje link do kodu weryfikacyjnego. Kliknij link i zezwól na dostęp do gdrive i skopiuj kod weryfikacyjny z przeglądarki. Wkleić to.

Mi to pasuje

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.