上传PHP后,从Google Cloud获取可公开访问的URL



问题是,在我将对象上传到可公开访问的Google Cloud存储桶后,我想立即将创建的URL用于其他服务。但是,我没有看到获取我可以使用的mediaUrl的方法。以下方法上给我的所有属性都是私有的:

$bucket->upload(
    fopen($_FILES['file']['tmp_name'], 'r'),
    array('name' => $name)
);

我已经尝试var_dump上述方法,以查看是否有任何公共属性会给我创建的URL,但它甚至没有任何公共属性。

这是我用来上传数据的代码:

$storage = new StorageClient([
    'keyFilePath' => 'keyfile_json.json'
]);
$bucket = $storage->bucket('bucket');
$name = 'some/name/path/'.$_POST['name'];
    $bucket->upload(
        fopen($_FILES['file']['tmp_name'], 'r'),
        array('name' => $name)
);

文件正在上传,我只是无法获取实际资源的 URL,然后我可以在对不同服务的不同 API 调用中使用。

上传资源后如何获取资源的 URL?

您需要自己为公共对象构建公共链接 URL。

格式很简单https://storage.cloud.google.com/BucketName/ObjectName.

有两种方法可以实现此目的:

  1. 使用以下 sintaxis 为公共对象创建 URL:https://storage.googleapis.com/[存储桶名称]/[对象名称]

哪里:

[存储桶名称] = 您的存储桶

[对象名称]= 上传对象的名称

  1. 如果您使用的是 AppEngine Standard Environment,API PHP App Engine API 中有一个方法:getPublicUrl(string $gs_filename, boolean $use_https( : string

哪里:

$gs_filename, string, Google Cloud Storage 文件名,格式为:gs://bucket_name/object_name。

$use_https, boolean, 如果为 True,则返回一个 HTTPS URL。请注意,开发服务器忽略此参数,仅返回 HTTP URL。

这里是 API 文档。

相关内容

  • 没有找到相关文章

最新更新