如何仅使用OAuth 2.0承载令牌和bucket名称在google云存储中生成文件的签名URL?(php代码)
我已经尝试了下面的代码,它工作得很好。但是,如果只使用OAuth 2.0访问令牌和bucket名称就可以获得已签名的URL,那将是理想的 我尝试了很多东西,但仍然没有去哪里如何仅使用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
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签名,如文档部分所述