对象存储服务 OBS-设置桶ACL(Node.js SDK):请求参数

时间:2024-10-12 08:36:02

请求参数

表1 请求参数列表

参数名称

参数类型

是否必选

描述

Bucket

string

必选

参数解释

桶名。

约束限制:

  • 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。
  • 桶命名规则如下:
    • 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。
    • 禁止使用IP地址。
    • 禁止以“-”或“.”开头及结尾。
    • 禁止两个“.”相邻(如:“my..bucket”)。
    • 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。
  • 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。

取值范围:

长度为3~63个字符。

默认取值:

ACL

AclType

可选

参数解释:

预定义访问策略。

约束限制:

Owner、Grants与ACL不能全为空。

取值范围:

AclType取值详见AclType

默认取值:

Owner

Owner

可选

参数解释:

桶的所有者。

约束限制:

  • Owner和Grants必须配套使用,且与ACL互斥。
  • Owner、Grants与ACL不能全为空。

取值范围:

详见Owner

默认取值:

Grants

Grant[]

可选

参数解释:

被授权用户权限信息。

约束限制:

  • Owner和Grants必须配套使用,且与ACL互斥。
  • Owner、Grants与ACL不能全为空。

取值范围:

详见Grant

默认取值:

表2 AclType

常量名

原始值

说明

ObsClient.enums.AclPrivate

private

私有读写。

桶或对象的所有者拥有完全控制的权限,其他任何人都没有访问权限。

ObsClient.enums.AclPublicRead

public-read

公共读私有写。

设在桶上,所有人可以获取该桶内对象列表、桶内多段任务、桶的元数据、桶的多版本。

设在对象上,所有人可以获取该对象内容和元数据。

ObsClient.enums.AclPublicReadWrite

public-read-write

公共读写。

设在桶上,所有人可以获取该桶内对象列表、桶内多段任务、桶的元数据、桶的多版本、上传对象、删除对象、初始化段任务、上传段、合并段、复制段、取消多段上传任务。

设在对象上,所有人可以获取该对象内容和元数据。

ObsClient.enums.AclPublicReadDelivered

public-read-delivered

桶公共读,桶内对象公共读。

设在桶上,所有人可以获取该桶内对象列表、桶内多段任务、桶的元数据、桶的多版本,可以获取该桶内对象的内容和元数据。

说明:

AclPublicReadDelivered不能应用于对象。

ObsClient.enums.AclPublicReadWriteDelivered

public-read-write-delivered

桶公共读写,桶内对象公共读写。

设在桶上,所有人可以获取该桶内对象列表、桶内多段任务、桶的元数据、桶的多版本、上传对象、删除对象、初始化段任务、上传段、合并段、复制段、取消多段上传任务,可以获取该桶内对象的内容和元数据。

说明:

AclPublicReadWriteDelivered不能应用于对象。

ObsClient.enums.AclBucketOwnerFullControl

bucket-owner-full-control

设在对象上,桶和对象的所有者拥有对象的完全控制权限,其他任何人都没有访问权限。

默认情况下,上传对象至其他用户的桶中,桶拥有者没有对象的控制权限。对象拥有者为桶拥有者添加此权限控制策略后,桶所有者可以完全控制对象。例如,用户A上传对象x至用户B的桶中,系统默认用户B没有对象x的控制权。当用户A为对象x设置bucket-owner-full-control策略后,用户B就拥有了对象x的控制权。

表3 Owner

参数名称

参数类型

是否必选

描述

ID

string

作为请求参数时必选

参数解释:

所有者的账号ID,即domain_id。

取值范围:

如何获取账号ID请参见如何获取账号ID和用户ID?(Node.js SDK)

默认取值:

DisplayName

string

可选

参数解释:

所有者的账号用户名。

默认取值:

表4 Grant

参数名称

参数类型

是否必选

描述

Grantee

Grantee

作为请求参数时必选

参数解释:

被授权用户相关信息,详见Grantee

Permission

PermissionType

作为请求参数时必选

参数解释:

被授予的权限。

取值范围:

权限取值范围详见PermissionType

默认取值:

Delivered

boolean

可选

参数解释:

桶内对象ACL是否继承桶的ACL。

取值范围:

  • true:桶内对象ACL继承桶的ACL。
  • false:桶内对象ACL不继承桶的ACL。

默认取值:

表5 Grantee

参数名称

参数类型

是否必选

描述

Type

string

作为请求参数时必选

参数解释:

被授权用户的类型。

取值范围:

被授权用户类型的取值范围详见GranteeType

默认取值:

ID

string

作为请求参数时,如果Type为用户类型则必选。

参数解释:

被授权用户的账号ID,即domain_id。

取值范围:

如何获取账号ID请参见如何获取账号ID和用户ID?(Node.js SDK)

默认取值:

Name

string

作为请求参数时可选

参数解释:

被授权用户的账号名。

约束限制:

  • 不支持中文。
  • 只能以字母开头。
  • 长度为6-32个字符。
  • 只能包含英文字母、数字或特殊字符(-_)。

默认取值:

URI

GroupUriType

作为请求参数时,如果Type为用户组类型则必选。

参数解释:

被授权的用户组。

取值范围:

授权用户组取值范围详见GroupUriType

默认取值:

表6 GranteeType

常量值

说明

Group

授权给用户组。

CanonicalUser

授权给单个用户。

表7 GroupUriType

常量名

原始值

说明

ObsClient.enums.GroupAllUsers

AllUsers

所有用户。

ObsClient.enums.GroupAuthenticatedUsers

AuthenticatedUsers

授权用户,已废弃。

ObsClient.enums.GroupLogDelivery

LogDelivery

日志投递组,已废弃。

表8 PermissionType

常量名

原始值

说明

ObsClient.enums.PermissionRead

READ

如果有桶的读权限,则可以获取该桶内对象列表、桶内多段任务、桶的元数据、桶的多版本。

如果有对象的读权限,则可以获取该对象内容和元数据。

ObsClient.enums.PermissionWrite

WRITE

如果有桶的写权限,则可以上传、覆盖和删除该桶内任何对象和段。

此权限在对象上不适用。

ObsClient.enums.PermissionReadAcp

READ_ACP

如果有读ACP的权限,则可以获取对应的桶或对象的权限控制列表(ACL)。

桶或对象的所有者永远拥有读对应桶或对象ACP的权限。

ObsClient.enums.PermissionWriteAcp

WRITE_ACP

如果有写ACP的权限,则可以更新对应桶或对象的权限控制列表(ACL)。

桶或对象的所有者永远拥有写对应桶或对象的ACP的权限。

拥有了写ACP的权限,由于可以更改权限控制策略,实际上意味着拥有了完全访问的权限。

ObsClient.enums.PermissionFullControl

FULL_CONTROL

如果有桶的完全控制权限意味着拥有PermissionRead、PermissionWrite、PermissionReadAcp和PermissionWriteAcp的权限。

如果有对象的完全控制权限意味着拥有PermissionRead、PermissionReadAcp和PermissionWriteAcp的权限。

support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0306.html