如果可以使用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;
答案 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']);
享受。