问题是当我将对象上传到可公开访问的Google Cloud存储桶后,我想立即将创建的URL用于其他服务。但是,我没有找到一种可以使用的mediaUrl的方法。以下方法的所有属性将为我提供私人信息:
$bucket->upload(
fopen($_FILES['file']['tmp_name'], 'r'),
array('name' => $name)
);
我已经尝试使用var_dump-ing以上方法来查看是否有任何公共属性会给我创建的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?
答案 0 :(得分:2)
您需要为公共对象自己构建公共链接URL。
格式为简单的https://storage.cloud.google.com/BucketName/ObjectName
。
答案 1 :(得分:1)
您可以通过两种方式实现这一目标:
位置:
[BucketName] =您的存储桶
[ObjectName] =您上传的对象的名称
位置:
$ gs_filename,字符串,Google Cloud Storage文件名,格式为:gs:// bucket_name / object_name。
$ use_https,布尔值,如果为True,则返回HTTPS URL。请注意,开发服务器会忽略此参数,仅返回HTTP URL。