0

我正在使用来自https://developers.google.com/drive/delegation的上述代码来访问特定的 Google Drive 帐户:

function buildService($userEmail) {
    global $DRIVE_SCOPE, $SERVICE_ACCOUNT_EMAIL, $SERVICE_ACCOUNT_PKCS12_FILE_PATH;
    $key = file_get_contents($SERVICE_ACCOUNT_PKCS12_FILE_PATH);
    $auth = new Google_AssertionCredentials(
        $SERVICE_ACCOUNT_EMAIL,
        array($DRIVE_SCOPE),
        $key);
    $auth->sub = $userEmail;
    $client = new Google_Client();
    $client->setUseObjects(true);
    $client->setAssertionCredentials($auth);
    return new Google_DriveService($client);
}

它工作正常,但创建对象的速度非常慢。我想将服务存储在会话中,以避免在对服务器的每个请求中重新创建它。序列化是不可能的。任何想法?

4

1 回答 1

0

如果你想在同一个脚本执行中重用你的服务,你可以创建一个 Singleton 来存储你需要的所有方法。

在这种情况下,您的类被实例化一次,当您再次调用时,将返回前一个实例而不是创建一个新实例。

于 2013-09-25T07:01:41.717 回答