Я создаю простое веб-приложение, которое сохраняет некоторые файлы на моем Google Диске, используя аутентификацию Auth2.0. Все работает хорошо, когда я использую код ниже, но я боюсь с некоторыми вещами здесь. Первый - сохранить содержимое в другой указанной папке. Код ниже сохраняет файлы в корневой папке, и я не могу понять, почему. upload_folder_id, очевидно, имеет хорошее значение, которое я здесь пропустил.Загрузите файлы в папку Google Диска с помощью python
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
try:
import argparse
flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
except ImportError:
flags = None
SCOPES = 'https://www.googleapis.com/auth/drive.file'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
creds = tools.run_flow(flow, store, flags) \
if flags else tools.run(flow, store)
DRIVE = build('drive', 'v3', http=creds.authorize(Http()))
upload_folder_id = <my_folder_id>
FILES = (('hello.txt', None)) # More files will be added after
for filename, mimeType in FILES:
metadata = {'name': filename}
if mimeType:
metadata['mimeType'] = mimeType
''' I tried all this possibilities too
metadata['parentId'] = upload_folder_id
metadata['folderId'] = upload_folder_id
'''
metadata['parents'] = [{'id': upload_folder_id}]
res = DRIVE.files().create(body=metadata, media_body=filename).execute()
if res:
print('Uploaded "%s" (%s)' % (filename, res['mimeType']))
Второй этап аутентификации. В первый раз, когда я подключил приложение, я был перенаправлен на веб-страницу google, где я предоставляю доступ к API. Есть ли способ сделать это, не проходя через веб-браузер для проверки доступа? (Это нормально для моих локальных тестов, но я не смогу это сделать на рабочем сервере).