Gunakan API Google Drive untuk menukar pemilik fail yang dibuat melalui perkhidmatan akaun
P粉680487967
P粉680487967 2024-01-06 11:03:37
0
1
558

Saya menggunakan akaun perkhidmatan untuk memuat naik fail ke folder kongsi dalam Google Drive.

Selepas beberapa lama saya mendapati bahawa fail yang dimiliki oleh akaun perkhidmatan telah menggunakan storan pemacu akaun perkhidmatan (salah saya) dan kini saya telah kehabisan ruang pemacu akaun perkhidmatan.

Saya telah mewakilkan kebenaran seluruh domain kepada akaun perkhidmatan, jadi fail baharu akan dimiliki oleh saya dan menggunakan kuota storan peribadi saya.

Lakukan ini: Wakilkan kebenaran seluruh domain kepada akaun perkhidmatan

Dan cara menggunakan kunci API untuk API Google Drive daripada PHP melalui google/apiclient

Untuk mengelakkan ralat dan kekeliruan pada masa hadapan, saya ingin menukar pemilik fail lama. Saya terus mendapat ralat ini:

{ "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" 
    } ] 
  } 
}

Ini adalah kod saya menggunakan klien 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)
);

Saya mendapat ralat yang sama tidak kira sama ada saya menggunakan setSubject dalam klien atau tidak. Saya telah mencuba menggunakan

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

Tetapi ia tidak berjaya.

P粉680487967
P粉680487967

membalas semua(1)
P粉571233520

Pemilikan fail hanya boleh dipindahkan antara akaun pada domain yang sama. Ralat ini berlaku kerana akaun perkhidmatan dan akaun anda bukan milik domain yang sama.

Jika anda mempunyai akses kepada drive kongsi dan dapat menambahkan pengguna dengan kebenaran untuk menambah fail, tambahkan akaun perkhidmatan dan biarkan ia mengalihkan fail ke drive kongsi.

Berkaitan

Lain-lain yang berkaitan

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan