Utilisez l'API Google Drive pour changer le propriétaire des fichiers créés via le service de compte
P粉680487967
P粉680487967 2024-01-06 11:03:37
0
1
494

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粉680487967
P粉680487967

répondre à tous(1)
P粉571233520

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!