Как загрузить на Google Drive с Python - PullRequest
1 голос
/ 28 июня 2019

Я хочу загрузить файл на диск Google с помощью скрипта Google и Python.

Я не хочу делать это с API, потому что это с файлом json и запросом пароля для учетной записи Google.

Я хочу отправить из файла Python без файла json и без запроса учетной записи Google.

Я хочу создать скрипт в google script, который будет загружать файл на сайт.

Я нашел, как это сделать с помощью HTML:

function saveFile(data,name,folderName) { 
   var contentType = data.substring(5,data.indexOf(';'));

   var file = Utilities.newBlob(
     Utilities.base64Decode(data.substr(data.indexOf('base64,')+7)), 
     contentType, 
     name
   ); //does the uploading of the files
   DriveApp.getFolderById(childFolderIdA).createFile(file);
}

Но я не нашел, как это сделать с python.

Как отправить файл с файлом на этот код?

Ответы [ 2 ]

2 голосов
/ 28 июня 2019

Вы можете сделать это, опубликовав веб-приложение для запуска под именем «Я» (вы) с доступом: «Любой, даже анонимный».

На стороне сервера:

function doPost(e){
  const FOLDER_ID = '###FOLDER_ID###';
  var name = e.parameter.name;
  saveFile(e.postData.contents,name,FOLDER_ID);
  return 'Success';
}

function saveFile(data,name,id) { 
    data = Utilities.newBlob(Utilities.base64DecodeWebSafe(data));
    DriveApp.getFolderById(id)
    .createFile(data.setName(name))
}

Клиентсторона:

import requests, base64
url = '###WEB_APP_PUBLISHED_URL###'
name = '###FILENAME###'
requests.post(url+'?name='+name,data=base64.urlsafe_b64encode(open('##UPLOAD FILE PATH##','rb').read()))

Примечание:

  • Любой, кто знает URL веб-приложения, может загрузить на ваш диск

Ссылки:

0 голосов
/ 28 июня 2019

Без уведомления Google о том, кто вы, путем аутентификации с помощью ключа API и подключения вашей учетной записи Drive, это невозможно.

Вы можете ознакомиться с кратким руководством по аутентификации Python с помощью Drive REST API здесь.Чтобы загрузить файлы, вы можете использовать метод DRIVE_SERVICE.files().create() в Python для загрузки файла на ваш диск после прохождения аутентификации.Документацию для загрузки файла можно найти здесь .

. В целях безопасности вы не можете загружать файлы с помощью Drive API без предварительной аутентификации приложения с помощью своей учетной записи.С помощью кода аутентификации, предоставленного в кратком руководстве, вы можете аутентифицировать свое приложение с областью действия https://www.googleapis.com/auth/drive.file.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...