Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用laravel中自动生成的访问令牌将图像上载到firebase bucket_Php_Laravel_Firebase_Google Cloud Storage_Firebase Storage - Fatal编程技术网

Php 使用laravel中自动生成的访问令牌将图像上载到firebase bucket

Php 使用laravel中自动生成的访问令牌将图像上载到firebase bucket,php,laravel,firebase,google-cloud-storage,firebase-storage,Php,Laravel,Firebase,Google Cloud Storage,Firebase Storage,我按照此步骤将图像上载到firebase存储,图像上载到存储中。但是,要查看图像,我必须在存储器中的图像内手动生成访问令牌。我希望有没有办法从我的代码中自动生成特定图像的访问令牌 下面是我上传图片的代码 $factory = (new Factory)->withServiceAccount(__DIR__.'/myfirebase.json'); $storage = $factory->createStorage(); $image = $request->file('im

我按照此步骤将图像上载到firebase存储,图像上载到存储中。但是,要查看图像,我必须在存储器中的图像内手动生成访问令牌。我希望有没有办法从我的代码中自动生成特定图像的访问令牌

下面是我上传图片的代码

$factory = (new Factory)->withServiceAccount(__DIR__.'/myfirebase.json');
$storage = $factory->createStorage();
$image = $request->file('image');

$localfolder = public_path('firebase-temp-uploads') .'/';

if (!file_exists($localfolder)) {
    mkdir($localfolder, 0777, true);
}

$extension  = $image->getClientOriginalExtension();

$file = $shopId. '.' . $extension;

if ($image->move($localfolder, $file)) {
    $uploadedfile = fopen($localfolder.$file, 'r');
    $storage->getBucket()->upload($uploadedfile, [
        'name' => 'categories/'.$file,
        // 'predefinedAcl' => 'PUBLICREAD',
    ]);
    unlink($localfolder . $file);
}

我尝试使用
'predefinedAcl'=>'PUBLICREAD'
,但它不起作用,而且手动创建的访问令牌在存储中不再可用

没有为通过服务器端SDK上载到云存储的文件生成下载URL

您有两个选项可以在自己的代码中为这些文件生成可公开访问的URL:

  • 生成一个所谓的,可能来自服务器端的代码。该格式将不同于Firebase的下载URL,但签名URL还提供公共只读访问

  • 自己设置上传文件的必要参数。请注意,这不是一个文档化的API,因此,尽管它现在似乎对许多开发人员都有效,但它可能会在某个时候停止工作


  • 嘿,Vpa。你做过这个吗?如果我的答案有用,请单击向上投票按钮(▲) 如果它回答了您的问题,请单击复选标记(✓) 接受它。这样别人就会知道你已经得到了(足够的)帮助。也请参见