Perl 编辑Google存储对象元数据需要哪些权限?
我有以下Perl代码:Perl 编辑Google存储对象元数据需要哪些权限?,perl,google-cloud-storage,Perl,Google Cloud Storage,我有以下Perl代码: $response = $process->request('PATCH', "https://www.googleapis.com/storage/v1/b/$Bucket/o/$EscapedName", '{"content-type": "image/jpeg"}', #
$response = $process->request('PATCH',
"https://www.googleapis.com/storage/v1/b/$Bucket/o/$EscapedName",
'{"content-type": "image/jpeg"}',
# '{"metadata": {"Content-Type": "image/jpeg"}}',
{'Content-Type' => 'application/json'});
unless ($response->is_success) {
print "Content-Type: text/plain\n\n";
print $response->status_line . "\n" . $response->decoded_content . "\n" ;
exit;
}
它产生
403 Forbidden
{
"error": {
"errors": [
{
"domain": "global",
"reason": "insufficientPermissions",
"message": "Insufficient Permission"
}
],
"code": 403,
"message": "Insufficient Permission"
}
}
尽管如此,我:
- 存储管理员
- 存储对象管理员
- 存储对象创建者
- 存储对象查看器
简单上传对象确实有效,但我无法设置此元数据。要更新对象元数据,需要
存储.objects.update
权限。发件人:
对象权限
storage.objects.update Update object metadata, excluding ACLs.
但是roles/storage.objectAdmin
和roles/storage.admin
角色(假设您所列的角色就是这个意思)都应该已经包含该权限,因此可能还有其他功能在工作。发件人:
对象资源中属性的名称为
contentType
,您正在传递content type
:
根据,您需要在对象上有
OWNER
,但我没有看到任何文档说明Admin如何包括(或不包括)OWNER
…您是否能够在中运行它还列出了以下范围要求:或者,您是否可以尝试使用该工具编辑元数据?
roles/storage.objectAdmin Full control over objects, including listing, storage.objects.*
creating, viewing, and deleting objects.
Does not grant permission to read or edit
bucket metadata.
roles/storage.admin Full control of buckets and objects. storage.buckets.*
When applied to an individual bucket, control storage.objects.*
only to the specified bucket and objects within
the bucket.