上传后从 Google 云端公开访问 URL PHP
Get publicly accessible URL from Google Cloud after upload PHP
问题是在我将对象上传到我的 public 可访问 Google 云存储桶后,我想立即将创建的 URL 用于其他服务。但是,我没有找到一种方法来获取我可以使用的 mediaUrl。以下方法的所有属性都是私有的:
$bucket->upload(
fopen($_FILES['file']['tmp_name'], 'r'),
array('name' => $name)
);
我已经尝试 var_dump-ing 上面的方法来查看是否有任何 public 属性会给我创建的 URL,但它甚至没有任何 public属性。
这是我用来上传数据的代码:
$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?
您需要为 public 个对象构建 public Link URL。
格式简单https://storage.cloud.google.com/BucketName/ObjectName
。
您有两种方法可以实现:
- 使用以下语法为 public 对象创建 URL:https://storage.googleapis.com/[BucketName]/[ObjectName]
其中:
[BucketName] = 你的桶
[ObjectName]=您上传的对象的名称
- 如果您使用的是 AppEngine 标准环境,API PHP App Engine API 中有一个方法:getPublicUrl(string $gs_filename, boolean $use_https) : 字符串
其中:
$gs_filename,字符串,Google 云存储文件名,格式为:gs://bucket_name/object_name.
$use_https,布尔值,如果为真则 return HTTPS URL。请注意,开发服务器忽略此参数并且 returns 仅 HTTP URLs.
问题是在我将对象上传到我的 public 可访问 Google 云存储桶后,我想立即将创建的 URL 用于其他服务。但是,我没有找到一种方法来获取我可以使用的 mediaUrl。以下方法的所有属性都是私有的:
$bucket->upload(
fopen($_FILES['file']['tmp_name'], 'r'),
array('name' => $name)
);
我已经尝试 var_dump-ing 上面的方法来查看是否有任何 public 属性会给我创建的 URL,但它甚至没有任何 public属性。
这是我用来上传数据的代码:
$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?
您需要为 public 个对象构建 public Link URL。
格式简单https://storage.cloud.google.com/BucketName/ObjectName
。
您有两种方法可以实现:
- 使用以下语法为 public 对象创建 URL:https://storage.googleapis.com/[BucketName]/[ObjectName]
其中:
[BucketName] = 你的桶
[ObjectName]=您上传的对象的名称
- 如果您使用的是 AppEngine 标准环境,API PHP App Engine API 中有一个方法:getPublicUrl(string $gs_filename, boolean $use_https) : 字符串
其中:
$gs_filename,字符串,Google 云存储文件名,格式为:gs://bucket_name/object_name.
$use_https,布尔值,如果为真则 return HTTPS URL。请注意,开发服务器忽略此参数并且 returns 仅 HTTP URLs.