Я пытаюсь загрузить файл из формы пользователя, используя метод записи:
@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
требуется файл в хранилище сервера, но я не могу сохранить файл на моем сервере, потому что он слишком длинный.