Я пытаюсь загрузить файл с Google Drive в сценарии, и у меня возникли небольшие проблемы с этим. Файлы, которые я пытаюсь загрузить, находятся здесь .
Я много смотрел в Интернете, и мне, наконец, удалось загрузить одну из них. Я получил UID файлов, и меньший (1,6 МБ) загружается нормально, однако больший файл (3,7 ГБ) всегда перенаправляет на страницу, которая спрашивает меня, хочу ли я продолжить загрузку без проверки на вирусы. Может ли кто-нибудь помочь мне пройти этот экран?
Вот как у меня работает первый файл -
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
Я заметил, что в строке с третьей по последнюю строку &confirm=JwkK
есть случайная строка из 4 символов, но есть способ добавить подтверждение в мой URL. Одна из ссылок, которые я посетил, предложила, &confirm=no_antivirus
но она не работает.
Я надеюсь, что кто-то здесь может помочь с этим!
источник
curl script
google drive
curl -u username:pass https://drive.google.com/open?id=0B0QQY4sFRhIDRk1LN3g2TjBIRU0 >image.jpg
gdown.pl https://drive.google.com/uc?export=download&confirm=yAjx&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM index4phlat.tar.gz
Ответы:
ВНИМАНИЕ : эта функциональность устарела. Смотрите предупреждение ниже в комментариях.
Посмотрите на этот вопрос: прямая загрузка с Google Drive с помощью Google Drive API
По сути, вы должны создать публичный каталог и обращаться к своим файлам по относительной ссылке с чем-то вроде
Кроме того, вы можете использовать этот скрипт: https://github.com/circulosmeos/gdown.pl
источник
export=download
поэтому он будет полезен в обозримом будущем, если Google не изменит эту схему URLИюнь 2020
pip install gdown
Это
file_id
должно выглядеть примерно так: 0Bz8a_Dbh9QhbNU3SGlFaDgВы можете получить его, щелкнув правой кнопкой мыши на файле, а затем получить ссылку для совместного использования. Работайте только с файлами открытого доступа (любой, у кого есть ссылка, может просматривать ). Не работает для каталогов. Проверено на Google Colab. Лучше всего работает при загрузке файлов. Используйте tar / zip, чтобы сделать его одним файлом.
Пример: скачать файл readme из этого каталога
источник
export=download&
с,gdown https://drive.google.com/uc?export=download&id=your_file_id
и это работает как очарованиеЯ написал фрагмент Python, который загружает файл с Google Диска, предоставляя ссылку для совместного использования . Работает с августа 2017 года .
Снайп не использует ни gdrive , ни Google Drive API. Он использует модуль запросов .
При загрузке больших файлов с Google Диска одного запроса GET недостаточно. Требуется второй, и у него есть дополнительный параметр URL, называемый подтверждающим , значение которого должно равняться значению определенного cookie.
источник
python snippet.py file_id destination
. Это правильный способ запуска? Потому что, если место назначения - это папка, мне выдается ошибка. Если я создаю файл и использую его в качестве места назначения, фрагмент кода работает нормально, но ничего не делает.$ python snippet.py your_google_file_id /your/full/path/and/filename.xlsx
работал для меня. в случае, если это не сработает, есть ли у вас какой-либо выход? любой файл создается?Вы можете использовать инструмент командной строки Linux / Unix с открытым исходным кодом
gdrive
.Чтобы установить это:
Загрузите бинарный файл. Например, выберите тот, который соответствует вашей архитектуре
gdrive-linux-x64
.Скопируйте его на свой путь.
Чтобы использовать это:
Определите идентификатор файла Google Диска.Для этого щелкните правой кнопкой мыши нужный файл на веб-сайте Google Диска и выберите «Получить ссылку…». Это вернет что-то вроде
https://drive.google.com/open?id=0B7_OwkDsUIgFWXA1B2FPQfV5S8H
. Получите строку позади?id=
и скопируйте ее в буфер обмена. Это идентификатор файла.Загрузите файл.Конечно, вместо этого используйте идентификатор вашего файла в следующей команде.
При первом использовании инструменту необходимо получить разрешения на доступ к API Google Диска. Для этого он покажет вам ссылку, которую вы должны посетить в браузере, а затем вы получите проверочный код для копирования и вставки обратно в инструмент. Загрузка начнется автоматически. Нет индикатора прогресса, но вы можете наблюдать за прогрессом в файловом менеджере или втором терминале.
Источник: комментарий Тоби к другому ответу здесь.
Дополнительный трюк: ограничение скорости. Для загрузки с
gdrive
ограниченной максимальной скоростью (чтобы не перегружать сеть…), вы можете использовать такую команду (pv
это PipeViewer ):Это покажет количество загруженных данных (
-b
) и скорость загрузки (-r
) и ограничит эту скорость до 90 КБ / с (-L 90k
).источник
Как это работает?
Получить файл cookie и HTML-код с помощью curl.
Передайте html в grep и sed и найдите имя файла.
Получить код подтверждения из файла cookie с помощью awk.
Наконец загрузите файл с включенным файлом cookie, подтвердите код и имя файла.
Если вам не нужно переменная файла скручивание может угадать его
-L Следовать переадресовывает
-O Дистанционно имя
-J Remote-заголовок-имя
Чтобы извлечь идентификатор файла Google из URL, вы можете использовать:
ИЛИ
источник
--insecure
опцию к обоим запросам curl, чтобы она работала.Дополнение от марта 2018.
Я пробовал различные методы, приведенные в других ответах, чтобы загрузить мой файл (6 ГБ) непосредственно с диска Google в мой экземпляр AWS ec2, но ни один из них не работает (возможно, потому, что он старый).
Итак, для информации других, вот как я сделал это успешно:
https://drive.google.com/file/d/FILEIDENTIFIER/view?usp=sharing
Скопируйте приведенный ниже скрипт в файл. Он использует curl и обрабатывает cookie для автоматизации загрузки файла.
Как показано выше, вставьте ФАЙЛИДЕНТИФИКАТОР в скрипт. Не забудьте сохранить двойные кавычки!
myfile.zip
).sudo chmod +x download-gdrive.sh
.PS: Вот суть Github для приведенного выше сценария: https://gist.github.com/amit-chahar/db49ce64f46367325293e4cce13d2424
источник
-c
на--save-cookies
и-b
на--load-cookies
"
цитаты${filename}
в последнюю строку../download-gdrive.sh" Do not be like me and try to run the script by typing
download-gdrive.sh, the
. / `, Кажется обязательным.Вот быстрый способ сделать это.
Убедитесь, что ссылка является общей, и она будет выглядеть примерно так:
https://drive.google.com/open?id=FILEID&authuser=0
Затем скопируйте этот FILEID и используйте его следующим образом
источник
wget 'https://docs.google.com/uc?export=download&id=SECRET_ID' -O 'filename.pdf'
-r
флагомwget
. Так оно и естьwget --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=FILE_ID' -O 'filename'
Поведение по умолчанию на диске Google - сканировать файлы на наличие вирусов, если файл слишком большой, он будет запрашивать пользователя и уведомлять его о невозможности сканирования файла.
На данный момент единственный обходной путь, который я нашел, - это поделиться файлом с сетью и создать веб-ресурс.
Цитата со страницы справки Google Drive:
С помощью Drive вы можете сделать веб-ресурсы - такие как файлы HTML, CSS и Javascript - видимыми как веб-сайт.
Чтобы разместить веб-страницу с Drive:
Найдено здесь: https://support.google.com/drive/answer/2881970?hl=ru.
Так, например, когда вы публикуете файл на диске Google публично, sharelink выглядит следующим образом:
Затем вы копируете идентификатор файла и создаете линк googledrive.com, который выглядит следующим образом:
источник
Простой способ:
(если вам это нужно для разовой загрузки)
Вы должны получить что-то вроде:
Вставьте его в консоль, добавьте
> my-file-name.extension
в конец (иначе он запишет файл в вашу консоль), затем нажмите enter :)источник
На основании ответа от Рошана Сетия
Май 2018
Используя WGET :
Создайте скрипт оболочки с именем wgetgdrive.sh, как показано ниже:
Дайте права доступа для выполнения скрипта
В терминале запустите:
например:
источник
chmod 770 wgetgdrive.sh
--UPDATED--
Чтобы скачать файл сначала получите
youtube-dl
для Python здесь:YouTube-DL: https://rg3.github.io/youtube-dl/download.html
или установите его с помощью
pip
:ОБНОВИТЬ:
Я только что узнал это:
Щелкните правой кнопкой мыши файл, который хотите загрузить с drive.google.com.
щелчок
Get Sharable link
Включить
Link sharing on
Нажмите на
Sharing settings
Нажмите на верхний выпадающий список для вариантов
Нажмите на Подробнее
Выбрать
[x] On - Anyone with a link
Копировать ссылку
Скопируйте идентификатор после
https://drive.google.com/file/d/
:Вставьте это в командную строку:
Вставьте идентификатор позади
open?id=
Надеюсь, поможет
источник
Нет ответа предлагает то, что работает для меня по состоянию на декабрь 2016 года ( источник ):
при условии, что файл Google Диска был передан тем, у кого есть ссылка, и
{FileID}
является строкой позади?id=
в общем URL-адресе.Хотя я не проверял с большими файлами, я думаю, что это может быть полезно знать.
источник
curl -L -o {filename} https://drive.google.com/uc?id={FileID}
работал на меня, спасибо!Самый простой способ это:
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
источник
Приведенные выше ответы устарели на апрель 2020 года, поскольку на диске Google теперь используется перенаправление на фактическое местоположение файла.
Работает по состоянию на апрель 2020 года на macOS 10.15.4 для публичных документов:
источник
download-google-2
работает для меня. Мой файл имеет размер 3G. Спасибо @ danieltan95download-google-2
последний завиток к этому,curl -L -b .tmp/$1cookies -C - "https://drive.google.com/uc?export=download&confirm=$code&id=$1" -o $2;
и теперь он может возобновить загрузку.У меня была такая же проблема с Google Drive.
Вот как я решил проблему, используя Ссылки 2 .
Откройте браузер на вашем ПК, перейдите к файлу на Google Диске. Дайте вашему файлу публичную ссылку.
Скопируйте общедоступную ссылку в буфер обмена (например, щелкните правой кнопкой мыши, скопируйте адрес ссылки)
Откройте Терминал. Если вы загружаете на другой компьютер / сервер / компьютер, вы должны использовать SSH, как показано ниже.
Установите ссылки 2 (метод debian / ubuntu, используйте ваш дистрибутив или аналог ОС)
sudo apt-get install links2
Вставьте ссылку в ваш терминал и откройте ее с помощью ссылок следующим образом:
links2 "paste url here"
Перейдите по ссылке для скачивания в разделе «Ссылки» с помощью клавиш со стрелками и нажмите Enter
Выберите имя файла, и он загрузит ваш файл
источник
Links
полностью сделал свое дело! И это намного лучше, чемw3m
Используйте youtube-dl !
youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890
Вы также можете пройти,
--get-url
чтобы получить URL для прямой загрузки.источник
youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [GoogleDrive] ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: Downloading webpage
. возможно, у вас устаревшая версияyoutube-dl
или формат ссылки по какой-то причине не распознан ... Попробуйте использовать формат, указанный выше, заменив идентификатор идентификатором файла из исходного URLЯ использовал фрагмент скручивания @ Amit Chahar, который опубликовал хороший ответ в этой теме. Я нашел полезным поместить его в функцию bash, а не в отдельный
.sh
файлкоторые могут быть включены, например, в
~/.bashrc
(после выбора источника, если он не получен автоматически) и использоваться следующим образомисточник
Есть мультиплатформенный клиент с открытым исходным кодом, написанный на Go: drive . Это довольно красиво и полнофункционально, а также находится в активной разработке.
источник
Все приведенные выше ответы, кажется, затеняют простоту ответа или имеют некоторые нюансы, которые не объясняются.
Если файл открыт для общего доступа, вы можете создать прямую ссылку для скачивания, просто зная идентификатор файла. URL-адрес должен быть в форме « https://drive.google.com/uc?id=[FILEID]&export=download ». Это работает с 11-22-2019. Для этого не требуется, чтобы получатель входил в Google, но для общего доступа к файлу.
В вашем браузере перейдите на drive.google.com.
Щелкните правой кнопкой мыши по файлу и нажмите «Получить общую ссылку»
Измените URL-адрес в следующем формате, заменив «[FILEID]» идентификатором вашего общего файла:
https://drive.google.com/uc?id=[FILEID]&export=download
Это ваша прямая ссылка для скачивания. Если вы щелкнете по нему в своем браузере, файл теперь будет «проталкиваться» в ваш браузер, открывая диалог загрузки, позволяющий сохранить или открыть файл. Вы также можете использовать эту ссылку в ваших скриптах загрузки.
Таким образом, эквивалентная команда curl будет:
источник
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?
Мне не удалось заставить работать perl-скрипт Nanoix или другие примеры curl, которые я видел, поэтому я сам начал изучать API в python. Это работало хорошо для маленьких файлов, но большие файлы заполняли доступный оперативный памяти, поэтому я нашел другой хороший код, который использует API для частичной загрузки. Суть здесь: https://gist.github.com/csik/c4c90987224150e4a0b2
Обратите внимание на загрузку json-файла client_secret из интерфейса API в локальный каталог.
Источникисточник
Вот небольшой скрипт bash, который я написал, который делает работу сегодня. Он работает с большими файлами и может восстанавливать частично извлеченные файлы. Он принимает два аргумента: первый - file_id, а второй - имя выходного файла. Основные улучшения по сравнению с предыдущими ответами здесь заключаются в том, что он работает с большими файлами и нуждается только в общедоступных инструментах: bash, curl, tr, grep, du, cut и mv.
источник
Это работает с ноября 2017 года https://gist.github.com/ppetraki/258ea8240041e19ab258a736781f06db
источник
После возни с этим мусором. Я нашел способ загрузить мой сладкий файл с помощью инструментов разработчика Chrome.
Он покажет вам запрос в консоли «Сеть»
Щелкните правой кнопкой мыши -> Копировать -> Копировать как завиток
-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
Решено!
источник
Вот обходной путь, по которому я подошел, загрузив файлы с Google Drive в мою оболочку Google Cloud Linux.
googledrive.com/host/[ID]
wget https://googledrive.com/host/[ID]
mv [ID] 1.zip
распаковать 1.zip
мы получим файлы.
источник
Я нашел рабочее решение для этого ... Просто используйте следующее
источник
Есть более простой способ.
Установите cliget / CURLWGET из расширения Firefox / Chrome.
Загрузите файл из браузера. Это создает ссылку curl / wget, которая запоминает файлы cookie и заголовки, используемые при загрузке файла. Используйте эту команду из любой оболочки для загрузки
источник
простой способ скачать файл с Google Drive, вы также можете скачать файл на Colab
затем
или
Документ https://pypi.org/project/gdown/
источник
Май 2018 РАБОТАЕТ
Привет, основываясь на этих комментариях ... я создаю bash для экспорта списка URL из файла URLS.txt в URLS_DECODED.txt который используется в некоторых ускорителях, таких как flashget (я использую cygwin для объединения окон и linux)
Командный паук был введен, чтобы избежать загрузки и получить окончательную ссылку (напрямую)
Команда GREP HEAD и CUT, обработка и получение окончательной ссылки, Основана на испанском языке, может быть, вы могли бы быть портированы на АНГЛИЙСКИЙ ЯЗЫК
echo -e "$URL_TO_DOWNLOAD\r"
вероятно, \ r только cywin и должно быть заменено на \ n (разрывная строка)**********user***********
это папка пользователя*******Localización***********
на испанском языке, очистите звездочки и дайте слово на английском. Местоположение и адаптируйте ГОЛОВУ и СОЛНЕЧНЫЕ числа, чтобы соответствовать подходу.источник
Вам просто нужно использовать wget с:
Оплаченный Файл должен быть общедоступным.
источник
Skicka - это инструмент Cli для загрузки, загрузки файлов доступа с Google-диска.
пример -
источник