Дополнительно
Прямое скачивание с Google Диска с помощью Google API для езды
Мое настольное приложение, написанное на Java, пытается скачать файлы с Google Диска. Как я выяснил, это можно реализовать с помощью файла'ы webContentLink
(он's Для возможность скачивать файлы без авторизации пользователя).
Итак, ниже код работает с мелкими файлами:
String webContentLink = aFile.getWebContentLink();
InputStream in = new URL(webContentLink).openStream();
Но это вовсе't работа на больших файлах, т. к. в этом случае файл может'т быть загружены непосредственно через webContentLink без подтверждения пользователя с вирусом Гугл сканирования предупреждение. Пример: ссылка веб-контента.
Итак, мой вопрос: Как получить содержимое открытого файла с Google Диска без разрешения пользователя?
35
11
Обновление 8 декабря 2015 года По данным поддержка Google с использованием
способ будет отключена на 31 августа, 2016.
Я просто столкнулся с этим вопросом.
В фокус обработать вашу папку Google Диск и как веб-хостинга.
1-ое обновление за апрель 2015,
Google Диск был изменен и там'ы простой способ получить прямую ссылку на свой диск. Я оставил мои предыдущие ответы ниже Для справки, но здесь'ы обновленный ответ.
https://googledrive.com/host/<папку девайс>/
https://googledrive.com/host/<папку девайс и gt;/<имя файла>
<дель>который предназначен функции в Google</дел> <БР> новый Google Диск Ссылка.
Все, что вам нужно сделать, это просто получить хоста ссылки на общедоступные папки диска. Чтобы сделать это, вы можете загрузить простой файл HTML и просмотр в Google Диск, чтобы найти Ваш URL-адрес узла.
Вот несколько шагов:
[править]
Забыл добавить. Если вы используете вложенные папки, чтобы организовать ваши файлы, вы просто использовать имя папки, как можно было бы ожидать в иерархии URL-адрес.
https://googledrive.com/host/<общедоступные папки строку ID>/картинок/мой образ.ПНГ
Чего я хочу
Я создал пользовательский образ Debian с виртуальными коробка для бомжа. Я хотел бы поделиться этим и".весне, файл с коллегами, чтобы они могли поставить прямую ссылку на свой файл Vagrantfile.
В конце концов, мне нужна прямая ссылка на сам файл.
Проблемы с Google Диска
Если вы установите разрешения для файлов, которые должны быть общедоступными и создавать/генерировать прямую ссылку открыть с помощью чего-то вроде инструмента gdocs2direct или просто создав ссылку сами:
https://docs.google.com/uc?export=download&идентификатор=<ваш файл ИД>
Вы получите печенье на основе кода подтверждения и приглашения "в Google не удалось просканировать этот файл" Подскажите, что выиграл't работа для таких вещей, как девятое или файл Vagrantfile конфиги.
Код, который он генерирует простой код, который добавляет вам запрос переменной
...&ампер;подтвердить=###
в строке, но это's в конкретного пользователя, так что's не как вы можете копировать/вставить этот запрос переменной для других.Но если вы используете выше и"хостинг" и способ, вы можете обойти это приглашение.
Я надеюсь, что помогает!
Если перед вами стоит "Эта файл не может быть проверен на вирусы и" страницы интермеццо, скачать не так просто.
Вам по сути нужно сначала загрузить нормальную ссылку на скачивание, которая, однако, может "загрузить в любом случае и" Страница. Вам нужно хранить куки с этого первого запроса, узнайте ссылку, указанную на "загрузить в любом случае и" кнопка, а затем использовать эту ссылку, чтобы загрузить файл, но повторное использование куки, которые вы получили из первого запроса.
Здесь'ы Баш вариант процесса загрузки с помощью curl:
Примечания:
-П
) ИК\в
"оператор" и что означает "не включать ничего, предшествующих\К
в соответствием результата. Я не'т знаю, какая версия грэп ввели эти варианты, но древний или не Ubuntu версий, вероятно, Дон'т у егоЯ знаю, это старый вопрос, но я не мог найти решение этой проблемы после того, как некоторые исследования, так что я поделиться тем, что работал для меня.
Я написал этот код на C# для одного из моих проектов. Он может обойти вирусов предупреждения программно. Код, вероятно, может быть преобразована в Java.
Это, кажется, снова обновлены по состоянию на 19 мая 2015 года:
Как я получил его на работу:
Как в jmbertucci's недавно обновил ответ, сделать публичную папку для всех. Это немного сложнее, чем раньше, нужно нажать кнопку Дополнительно, чтобы изменить папку, чтобы "На - в интернете&.и"
Найти папку заряжаться как и раньше-просто заходите в папку и найти свой UUID в адресной строке:
Потом голову
Она перенаправит вас на страницах типа индекса с гигантским поддомен, но вы должны быть в состоянии видеть файлы в папке. Затем вы можете щелкнуть правой кнопкой Сохранить ссылку на файл, который вы хотите (я заметил, что этот прямой ссылке также имеет большой поддомен для googledrive.com
). Работал большой для меня с
с wget`.Это похоже на работу с другим' общие папки.
например,
https://drive.google.com/folderview?id=0B7l10Bj_LprhQnpSRkpGMGV2eE0&УСП=обмен
карты
https://googledrive.com/host/0B7l10Bj_LprhQnpSRkpGMGV2eE0
И правой кнопкой мыши можете сохранить прямой ссылке на любой из этих файлов.
#Вариант 1: Скачать файл с малым размером.
#Вариант 2: Скачать файл с большим размером.
Решение:
)]}' { &и"отчуждения" и:"по SCAN_CLEAN" и, на "downloadUrl" и:"и http:www...", "с именем" и:"и exam_list_json.тхт" и "Ну scanResult-то": на"ОК" и "Ну sizeBytes-то":2392}
Затем, вы можете использовать любой парсер JSON для чтения downloadUrl, именем и sizeBytes.
частная потока gConnect(строка remoteFile) бросает IOException{ URL-адрес URL-адрес = новый URL-адрес(remoteFile); URLConnection связи = URL-адрес.содержащие вредоносные элементы(); если(подключение оператора instanceof HttpURLConnection){ HttpURLConnection httpConnection = (HttpURLConnection) связи; связи.setAllowUserInteraction(ложь); httpConnection.setInstanceFollowRedirects(истина); httpConnection.setRequestProperty("от пользователя-агента и", "в браузере Mozilla/4.0 (совместимый; MSIE 6.0; Windows 2000 с)" - а); httpConnection.setDoOutput(true); в httpConnection.setRequestMethod (на"сделать" - а); httpConnection.подключиться();
инт reqCode = httpConnection.getResponseCode();
если(reqCode == HttpURLConnection.HTTP_OK){ InputStream является = httpConnection.getInputStream(); Карта<строку, список<строка>> карта = httpConnection.getHeaderFields(); Список<строка> значения = карте.получить("По материалам-типа„); если(значение != значение null &&усилителя; !значения.свойств isEmpty()){ Тип String = значения.получить(0);
если(тип.содержит("в текст/HTML с")){ Строку cookie = httpConnection.getHeaderField("в набор-Печенье" - а); Строку Temp = константы.getPath(mContext, константы.PATH_TEMP) + " в/темп.HTML-код" - а; если(saveGHtmlFile(это в temp)){ Строку с href = getRealUrl(темп); если(с href != значение null){ возвращение parseUrl(с href, печенье); } }
} остальное, если(тип.содержит (и"Приложение/JSON", у)){ Строку Temp = константы.getPath(mContext, константы.PATH_TEMP) + " в/темп.тхт и"; если(saveGJsonFile(это в temp)){ Данные FileDataSet = JsonReaderHelper.readFileDataset(новый файл(в папке Temp)); если(данные.getPath() != значение null){ возвращение parseUrl(данные.getPath()); } } } } возврат; } } возвращать значение null; }
И
https://github.com/google/skicka
Я использовал этот инструмент командной строки для загрузки файлов с Google Диска. Просто следуйте инструкциям в разделе Приступая к работе, и вы должны скачать файлы с Google Диска в минутах.
С помощью учетной записи службы могут работать на вас.
Если вы просто хотите, чтобы программно (как oppossed, чтобы дать пользователю ссылку для открытия в браузере) скачать файл через Google Диск API, я хотел бы предложить, используя
downloadUrl
файл вместоwebContentLink
, как описано здесь: https://developers.google.com/drive/web/manage-downloadsЯ хотел бы рассмотреть скачивание по ссылке, обдирая странице вы получите ссылку для подтверждения, а затем загрузить эту.
Если вы посмотрите на "загрузить в любом случае и" URL-адрес это параметр запроса дополнительного подтверждения с, казалось бы, случайно сгенерированный токен. Поскольку она'ы случайные...и вы, вероятно, Дон'т хотите, чтобы выяснить, как создать его самостоятельно, соскоб может быть самый простой способ, ничего не зная о том, как работает сайт.
Вы, возможно, потребуется рассмотреть различные сценарии.
https://drive.google.com/uc?export=download&ИД=столбцом file_id заменить столбцом file_id с идентификатора файла.
если вы Don'т знаю, были это идентификатор, файл-проверьте эту статью ссылка на статью
Я просто создать код JavaScript так, чтобы он автоматически захватить ссылке и скачать и закрыть вкладку с помощью вы.
Так же вы можете получить HTML-код URL и скачать в Java.