如何仅使用OAuth 2.0承载令牌和bucket名称在google云存储中生成文件的签名URL?(php代码)

如何仅使用OAuth 2.0承载令牌和bucket名称在google云存储中生成文件的签名URL?(php代码),php,oauth-2.0,google-cloud-storage,access-token,Php,Oauth 2.0,Google Cloud Storage,Access Token,我已经尝试了下面的代码,它工作得很好。但是,如果只使用OAuth 2.0访问令牌和bucket名称就可以获得已签名的URL,那将是理想的 我尝试了很多东西,但仍然没有去哪里 function getSignedURL($file, $expiryMinutes = 30) { $privateKeyFileContent = '{ // service account generated key }'; $storage = new StorageClien

我已经尝试了下面的代码,它工作得很好。但是,如果只使用OAuth 2.0访问令牌和bucket名称就可以获得已签名的URL,那将是理想的

我尝试了很多东西,但仍然没有去哪里

function getSignedURL($file, $expiryMinutes = 30)
{

    $privateKeyFileContent = '{
     // service account generated key
    }';

    $storage = new StorageClient([
        'keyFile' => json_decode($privateKeyFileContent, true)
    ]);
    $bucket = $storage->bucket("as-portal");
    $object = $bucket->object($file);
    $url = $object->signedUrl(
    # This URL is valid for 15 minutes
        new \DateTime("$expiryMinutes min"),
        [
            'version' => 'v4',
        ]
    );
}

任何帮助都将不胜感激

当前,所有可用于签名URL的方法都需要服务帐户的私钥,如中所述。因此,如果没有服务帐户的私钥,就不可能在本地对URL进行签名

但是,您可以按照中的说明远程签名。我建议让一个应用引擎服务为您的URL签名,如文档部分所述