Загрузить файлы на Google Drive из почтовой формы - PullRequest
1 голос
/ 19 февраля 2020

Я пытаюсь загрузить файл из формы пользователя, используя метод записи:

@main.route('/gupload/', methods=['POST'])
def google_upload():
    Drive.Google.put_file(request.files['file'].filename, request.files['file'].read())
    return redirect(url_for('main.update_page'))

@staticmethod
def put_file(name, file):
    Google.refresh_token()
    drive_service = build('drive', 'v3', credentials=pickle.loads(session['google']['credentials']))
    body = {
        'name': name,
        'parents': [{'id': Google.get_root_dir_id()}]
    }
    file_media = MediaFileUpload(file)
    responce = drive_service.files().create(body=body, media_body=file_media).execute()
    return responce

Но я получаю сообщение об ошибке:

FileNotFoundError: [Errno 2] No such file or directory: b'{"web":{"client_id":"--secret--","project_id":"intouch-265519","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"--secret--","redirect_uris":["http://127.0.0.1:5000/vk/google_login_response"]}}'

Я получаю файл по: request.files['file'].read(), затем я звоню мой собственный метод put_file, следующий шаг - создание media_body методом MediaFileUpload, пример использования:

MediaFileUpload('cow.png', mimetype='image/png',chunksize=1024*1024, resumable=True)

Мои проблемы в том, что я не знаю, как передать файл из пользовательской формы в google drive api , потому что MediaFileUpload требуется файл в хранилище сервера, но я не могу сохранить файл на моем сервере, потому что он слишком длинный.

...