Maison  >  Questions et réponses  >  le corps du texte

Utilisez l'API Google Drive pour changer le propriétaire des fichiers créés via le service de compte

J'utilise un compte de service pour télécharger des fichiers dans un dossier partagé dans Google Drive.

Après un certain temps, j'ai découvert que les fichiers appartenant au compte de service consommaient l'espace de stockage sur disque du compte de service (ma faute) et maintenant je n'ai plus d'espace disque sur le compte de service.

J'ai délégué des autorisations à l'échelle du domaine au compte de service, donc les nouveaux fichiers m'appartiendront et utiliseront mon quota de stockage personnel.

Faites ceci : déléguez les autorisations à l'échelle du domaine à un compte de service

Et comment utiliser la clé API pour l'API Google Drive depuis PHP via google/apiclient

Pour éviter de futures erreurs et confusions, je souhaite changer le propriétaire de l'ancien fichier. J'obtiens toujours cette erreur :

{ "error": { 
    "code": 400, 
    "message": "Bad Request. User message: "You can't change the owner of this item."", 
    "errors": [ {
       "message": "Bad Request. User message: "You can't change the owner of this item."", 
       "domain": "global", 
       "reason": "invalidSharingRequest" 
    } ] 
  } 
}

Voici mon code utilisant le client PHP

$client = new Google_Client();
$client->setApplicationName('My Name');
$client->setScopes(Google_Service_Drive::DRIVE);
$client->setAuthConfig($my_credentials);
$client->setAccessType('offline');
//$client->setSubject('my_personal_account');

$service = new Google_Service_Drive($client);

$newPermission = new Google_Service_Drive_Permission();
$newPermission->setEmailAddress('my_personal_account');
$newPermission->setType('user');
$newPermission->setRole('owner');

$service->permissions->create(
  $fileId, 
  $newPermission, 
  array("fields" => "id", "transferOwnership" => true)
);

J'obtiens la même erreur, que j'utilise ou non setSubject dans le client. J'ai essayé d'utiliser

$newPermission->setRole('writer');
$newPermission->setPendingOwner(true);

Mais ça n’a pas fonctionné.

P粉680487967P粉680487967261 Il y a quelques jours496

répondre à tous(1)je répondrai

  • P粉571233520

    P粉5712335202024-01-07 00:10:19

    La propriété des fichiers ne peut être transférée qu'entre comptes du même domaine. Cette erreur se produit car le compte de service et votre compte n'appartiennent pas au même domaine.

    Si vous avez accès au lecteur partagé et pouvez ajouter un utilisateur autorisé à ajouter des fichiers, ajoutez un compte de service et laissez-le déplacer les fichiers vers le lecteur partagé.

    Connexe

    Autres liés

    répondre
    0
  • Annulerrépondre