【问题标题】:How to generate a Signed URL of file in google cloud storage with just OAuth 2.0 bearer token and bucket name? (php code)如何仅使用 OAuth 2.0 不记名令牌和存储桶名称在谷歌云存储中生成文件的签名 URL? (PHP代码)
【发布时间】:2020-04-10 14:39:41
【问题描述】:

我已经尝试了下面的代码,它工作正常。但是,如果我可以仅使用 OAuth 2.0 访问令牌和存储桶名称来获取签名 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',
        ]
    );
}

任何帮助将不胜感激!

【问题讨论】:

    标签: php oauth-2.0 google-cloud-storage access-token


    【解决方案1】:

    目前所有可用于签署 URL 的方法都需要服务帐户的私钥,如 Options for generating a signed URL 中所述。因此,如果没有服务帐户的私钥,就无法在本地签署 URL。

    但是,您可以按照this example 中的说明进行远程签名。我建议让 App Engine 服务为您签名网址,如文档的 Signing strings with Google Cloud tools 部分中所述。

    【讨论】:

      猜你喜欢
      • 2020-08-16
      • 2020-04-09
      • 2013-12-27
      • 1970-01-01
      • 2013-06-15
      • 2019-09-09
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多