簡體   English   中英

Google Drive PHP API返回已刪除的文件

[英]Google Drive PHP API returns deleted files

我正在嘗試使用服務在Amazon S3和Google Drive之間同步文件。

我創建了一個服務帳戶,並與其電子郵件共享了一個文件夾。 然后,利用我構建的自動化服務,創建了一些文件夾。

一切正常,直到我嘗試從Google雲端硬盤用戶界面刪除這些文件夾。 它們從UI中消失了,但是我的服務仍然像接收它們一樣接收它們。 這是我用來列出文件/文件夾的代碼:

private function retrieveAllGoogleDriveFiles($service) {
    $result = array();
    $pageToken = NULL;
    do {
        try {
            $parameters = array();
            if ($pageToken) {
                $parameters['pageToken'] = $pageToken;
            }
            $parameters['q'] = "trashed=false";
            $files = $service->files->listFiles($parameters);

            $result = array_merge($result, $files->getItems());
            $pageToken = $files->getNextPageToken();
        } catch (Exception $e) {
            print "An error occurred: " . $e->getMessage();
            $pageToken = NULL;
        }
    } while ($pageToken);
    return $result;
}

這是我使用的授權機制:

        $credentials = new Google_Auth_AssertionCredentials(
            '1234567890-somehashvalueshere123123@developer.gserviceaccount.com',
            array('https://www.googleapis.com/auth/drive'),
            $private_key,
            'notasecret',                                
            'http://oauth.net/grant_type/jwt/1.0/bearer'
        );

        $googleClient = new Google_Client();
        $googleClient->setAssertionCredentials($credentials);
        if ($googleClient->getAuth()->isAccessTokenExpired()) {
            $googleClient->getAuth()->refreshTokenWithAssertion();
        }

        $googleService = new Google_Service_Drive($googleClient);
        $files_list = $this->retrieveAllGoogleDriveFiles($googleService);

用戶從Google雲端硬盤刪除文件/文件夾的情況對我來說是真實的,我應該將同步恢復到S3並從那里也刪除文件/文件夾。

提前致謝。

在多個用戶之間共享文件夾時,擁有者有權刪除文件夾,而不是其他用戶。

本質上,正在發生的是通過單擊“刪除”,用戶正在將其從驅動器中刪除(取消訂閱),而不是刪除文件夾。 這就是為什么它仍然出現在您的服務帳戶文件列表中的原因。

一種可能的解決方案是更改所有者,以便非服務帳戶擁有該文件。 在這種情況下,刪除實際上是一種垃圾/刪除操作。 但是,如果不了解您的用例/要解決的基本問題,就很難完成解決方案。 如果用戶是企業/工作帳戶而不是私人/個人帳戶,則其中某些操作可能會更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM