0

上記のコードをhttps://developers.google.com/drive/delegationから使用して、特定の Google ドライブ アカウントにアクセスしています。

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

同じスクリプトの実行でサービスを再利用したい場合は、必要なすべてのメソッドを格納するシングルトンを作成できます。

この場合、クラスは 1 回インスタンス化され、もう一度呼び出すと、新しいインスタンスを作成する代わりに、以前のインスタンスが返されます。

于 2013-09-25T07:01:41.717 に答える