У меня есть учетная запись Google в качестве студента. Эта учетная запись управляется моим университетом, а недавно университет сообщил нам, что учетные записи студентов теперь имеют «неограниченное» хранилище для Диска и т. Д.Google APP управляет «неограниченной» учетной записью для хранения учетной записи
Чтобы выполнить резервное копирование, я создал несколько учетных записей службы в консоли Google API (XXX @ developer.gserviceaccount.com). Но выясняется, что хранилище этих учетных записей ограничено 15 ГБ, то есть при попытке загрузить файлы в одну из учетных записей службы, в которой уже есть ~ 15 ГБ, я получаю сообщение об ошибке «клиент превысил свою квоту хранилища».
Я спросил администраторов университета, они не знают, как помочь и даже не видеть адрес учетной записи службы ([email protected]) в списке управляемых учетных записей.
Итак, вопрос заключается в том, что должно быть сделано (мной или администраторами университета), чтобы удалить (или увеличить) квоту хранения моих учетных записей службы, когда они были открыты с «неограниченной» учетной записью студента.
Обновление: попытка @DaImTo предложение:
Так я создал папку в моем Drive веб-интерфейс и общий его с моей учетной записи службы. Затем, с учетной записью службы, я загрузил файл в эту папку (с помощью PyDrive библиотеки):
file1 = drive.CreateFile({'title': 'test2', 'parents': [{"kind": "drive#fileLink", "id": shared_folder_id}]})
file1.SetContentString('some text')
file1.Upload()
print 'File ID: %s' % file1['id']
permissions = file1.auth.service.permissions().list(fileId=file1['id']).execute()
print "permissions:", permissions
Выход:
File ID: XXX
permissions: {u'items': [{u'kind': u'drive#permission', u'name': u'[email protected]', u'domain': u'developer.gserviceaccount.com', u'etag': u'"XXX"', u'emailAddress': u'[email protected]', u'role': u'owner', u'type': u'user', u'id': u'XXX', u'selfLink': u'https://www.googleapis.com/drive/v2/files/XXX/permissions/XXX'},
{u'kind': u'drive#permission', u'name': u'<my name>', u'domain': u'<my school domain>', u'etag': u'"XXX"', u'emailAddress': u'<my name>@<my school domain>', u'role': u'writer', u'type': u'user', u'id': u'XXX', u'selfLink': u'https://www.googleapis.com/drive/v2/files/XXX/permissions/XXX'}], u'kind': u'drive#permissionList', u'etag': u'"XXX"', u'selfLink': u'https://www.googleapis.com/drive/v2/files/XXX/permissions?alt=json'}
Так загруженный файл автоматически имеет два разрешения: счета 1. Службы является «владелец» 2. Моя основная учетная запись «писатель»
Действительно, я могу видеть файл в веб-интерфейсе, редактировать его, удалять и т. д. Но поскольку учетная запись службы является владельцем, файл учитывается в сервисе Счет кейти хранения, поэтому это не решает мою проблему, то есть я все еще не могу использовать более 15 ГБ с моим приложением резервного копирования.
Я пытался передать право собственности на мой основной счет:
file1 = drive.CreateFile({'id': file_id})
permissions = file1.auth.service.permissions().list(fileId=file1['id']).execute()
myperm_id = permissions['items'][1]['id'] # this is the second permission, i.e. of my main account
myperm = file1.auth.service.permissions().get(fileId=file1['id'], permissionId=myperm_id).execute()
myperm['role'] = 'owner'
file1.auth.service.permissions().update(fileId=file1['id'], permissionId=myperm['id'], body=myperm).execute()
... и получил ошибку:
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/drive/v2/files/XXX/permissions/XXX?alt=json returned "Insufficient permissions for this file">
Я пытался добавить transferOwnership = 'True':
file1.auth.service.permissions().update(fileId=file1['id'], permissionId=myperm['id'], body=myperm, transferOwnership='True').execute()
получил ту же ошибку. Я застрял здесь.
Кстати, в справочной системе Google Transfer file ownership они говорят: «Если вы пользователь Google Apps, вы не можете передавать права собственности другому лицу, находящемуся за пределами вашего домена».
Отлично, что вы его работали. Какие ошибки у меня есть, как вы получили учетные данные учетной записи службы? Возможно, вы не заполнили поле 'sub'. Если вы заполните его, учетная запись sercice выдаст себя за данного пользователя. Для меня владельцем файла была тогда учетная запись. – okipol