2013-05-21 2 views
2

Я использую Java-клиент SDK для Google Диска.Передача права собственности с Java-клиентом

Цель приложения: передать права собственности на все файлы владельцу родителя. Под этим я имею в виду, что есть несколько учетных записей с большими объемами хранения, например. StorageAcct1, StorageAcct2 и т. Д. Если пользователь перемещает свои файлы в эту учетную запись, они по-прежнему сохраняют право собственности и несут штраф за хранение. Я хочу, чтобы мое приложение выполнялось в фоновом режиме и передало права собственности на учетные записи хранилища.

Я создал объект службы управления как StorageAcct1 и аутентифицирован в домене. Я могу аутентифицироваться как StorageAcct1 и перечислить все файлы, а также добавлять/удалять разрешения для записи и просмотра. Однако я не могу передать право собственности. Таким образом, если AppsUser1 принадлежит Document1, StorageAcct1 не может получить право собственности, даже если учетная запись установлена ​​как администратор Super Admin или Drive Admin.

Я заметил, что если я создам новый объект службы в качестве владельца, я могу передать его владельцу. (Создайте учетную запись службы как [email protected], чтобы передать право собственности на Document1 на StorageAcct1).

Поскольку вызовы API разрешений не возвращают электронные письма владельца и просто имена, я не могу программно просматривать список файлов и передавать права собственности. Я бы предпочел не добавлять в базу данных поиск имени по электронной почте и связать это с помощью API Provisioning.

Благодарим за любые предложения.

ответ

2

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

Если у вас есть список пользователей, которые находятся на разных доменах и хотели бы знать домен пользователя, чтобы соответствовать его с учетной записью службы своего домена, сделать запрос на USERINFO, чтобы получить его/ее домен:

GET https://www.googleapis.com/oauth2/v2/userinfo 
{ 
    "email": "[email protected]", 
    "hd": "domain.com" 
} 

Вы все равно должны будете соответствовать домену в учетной записи службы.