使用php

时间:2017-01-30 09:20:01

标签: php firebase firebase-storage

如果可以使用php上传,下载和删除文件,我是firebase web的新手。我使用JS上传文件,但我想使用PHP下载。

Here是使用JS的下载文件的脚本,但我想用PHP。

提前致谢...

我的代码

[START storage_quickstart]
# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';

# Imports the Google Cloud client library
use Google\Cloud\Storage\StorageClient;

# Your Google Cloud Platform project ID
$projectId = 'My project ID';

# Instantiates a client
$storage = new StorageClient([
    'projectId' => $projectId
]);

# The name for the new bucket
$bucketName = 'my bucket';

# Creates the new bucket
$bucket = $storage->createBucket($bucketName);

echo 'Bucket ' . $bucket->name() . ' created.';
# [END storage_quickstart]
return $bucket;

2 个答案:

答案 0 :(得分:1)

简短的回答是你应该使用gcloud-php。这需要您设置服务帐户(或使用提供默认凭据的Google Compute Engine / Container Engine / App Engine)。

您可能会create a service account下载keyfile.json,并将其作为参数提供给StorageClient,如下所示:

# Instantiates a client
$storage = new StorageClient([
    'keyFilePath' => '/path/to/key/file.json',
    'projectId' => $projectId
]);

或者,看起来他们已经构建了另一个抽象层,它采用相同的参数但允许您使用许多其他服务:

use Google\Cloud\ServiceBuilder;

$gcloud = new ServiceBuilder([
    'keyFilePath' => '/path/to/key/file.json',
    'projectId' => 'myProject'
]);

$storage = $gcloud->storage();

$bucket = $storage->bucket('myBucket');

答案 1 :(得分:0)

这是一个古老的问题,但是我一直在努力解决同样的问题...希望我的解决方案能帮助到某人。 实际上,我真的不知道是否有官方的方法可以这样做,但是我创建了下面的方法,并且对我有用。

function storageFileUrl($name, $path = []) {
    $base = 'https://firebasestorage.googleapis.com/v0/b/';
    $projectId = 'your-project-id';

    $url = $base.$projectId.'/o/';
    if(sizeof($path) > 0) {
        $url .= implode('%2F', $path).'%2F';
    }
    return $url.$name.'?alt=media';
}

要访问存储桶根目录中的文件,

$address = storageFileUrl('myFile');

结果:https://firebasestorage.googleapis.com/v0/b/your-project-id.appspot.com/o/myFile?alt=media

要访问某个文件夹中的文件,请执行以下操作:

$address = storageFileUrl('myFile', ['folder', 'subfolder']);

结果:https://firebasestorage.googleapis.com/v0/b/your-project-id.appspot.com/o/folder%2Fsubfolder%2FmyFile?alt=media

享受。