使用 PHP 将图片上传到 Firebase 存储,但必须手动创建访问令牌才能使其可见

我正在使用 PHP 将图像上传到 firebase 存储。图片正在上传,但无法访问,因为我必须手动创建“访问令牌”才能访问它。这是我使用的代码


 $bucketName = "example.appspot.com";

$objectName = 'Photos/test.jpeg';

$storage = new StorageClient();

$bucket = $storage->bucket($bucketName);

$object = $bucket->upload(fopen('sign.jpeg', 'r'),

    [

       'name' => $objectName

    

    ]

    

 ); 


缥缈止盈
浏览 111回答 3
3回答

汪汪一只猫

这确实按预期工作:由于您的上传不是通过 Firebase SDK,因此没有方法生成下载 URL。常见的解决方法是创建一个过期时间很远的签名 URL ,这是 Cloud Storage 与 Firebase 的下载 URL 最接近的等效项。

呼啦一阵风

我采用了一种间接的方式来生成和存储访问令牌。$payload = file_get_contents('https://firebasestorage.googleapis.com/v0/b/example.appspot.com/o/Photos%2Fpic.jpeg');$data = json_decode($payload); echo $data->downloadTokens; 此代码已创建访问令牌,并在屏幕上显示 downloadToken。谢谢大家的回答。

桃花长相依

您还可以将publicReadACL分配给上传的文件并手动编写公共URL:$bucketName = "example.appspot.com";$objectName = 'Photos/test.jpeg';$storage = new StorageClient();$bucket = $storage->bucket($bucketName);$object = $bucket->upload(fopen('sign.jpeg', 'r'), [   'name' => $objectName   'predefinedAcl' => 'publicRead']);$publicUrl = "https://{$bucket->name()}.storage.googleapis.com/{$object->name()}";
打开App,查看更多内容
随时随地看视频慕课网APP