华为云用户手册

  • URI POST /v1/instances/{instance_id}/permission-sets/{permission_set_id}/attach-managed-role 表1 路径参数 参数 是否必选 参数类型 描述 instance_id 是 String IAM身份中心实例的全局唯一标识符(ID)。 permission_set_id 是 String 权限集的全局唯一标识符(ID)。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 account_ids Array of strings 账号ID列表。 page_info Object 包含分页信息的对象。 表5 page_info 参数 参数类型 描述 next_marker String 如果存在,则表示可用的输出比当前响应中包含的输出多。在对操作的后续调用中,在标签请求参数中使用此值,以获取输出的下一部分。您应该重复此操作,直到next_marker响应元素返回为null。 current_count Integer 本页返回条目数量。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 request_id String 请求唯一标识。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 request_id String 请求唯一标识。
  • URI GET /v1/instances/{instance_id}/permission-sets/{permission_set_id}/accounts 表1 路径参数 参数 是否必选 参数类型 描述 instance_id 是 String IAM身份中心实例的全局唯一标识符(ID)。 permission_set_id 是 String 权限集的全局唯一标识符(ID)。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 每个请求返回的最大结果数。 最小值:1 最大值:100 缺省值:100 marker 否 String 分页标记。 最小长度:24 最大长度:24 provisioning_status 否 String 权限集分配状态。 枚举值: LATEST_PERMISSION_SET_PROVISIONED LATEST_PERMISSION_SET_NOT_PROVISIONED
  • 请求示例 更新指定实例的访问控制属性配置。 PUT https://{hostname}/v1/instances/{instance_id}/access-control-attribute-configuration { "instance_access_control_attribute_configuration" : { "access_control_attributes" : [ { "key" : "email", "value" : { "source" : [ "${path:emails[primary eq true].value}" ] } }, { "key" : "nickName", "value" : { "source" : [ "${path:nickName}" ] } } ] } }
  • 响应参数 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 request_id String 请求唯一标识。 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 request_id String 请求唯一标识。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Security-Token 否 String 如果正在使用临时安全凭据,则此header是必需的,该值是临时安全凭据的安全令牌(会话令牌)。 最大长度:2048 表3 请求Body参数 参数 是否必选 参数类型 描述 instance_access_control_attribute_configuration 是 Object 更新ABAC配置的属性。 表4 instance_access_control_attribute_configuration 参数 是否必选 参数类型 描述 access_control_attributes 是 Array of objects IAM身份中心实例中ABAC配置的属性。 数组长度:0 - 20 表5 access_control_attributes 参数 是否必选 参数类型 描述 key 是 String 与您的身份源中的身份关联的属性的名称。 最小长度:1 最大长度:128 value 是 Object 用于将指定属性映射到身份源的值。 表6 value 参数 是否必选 参数类型 描述 source 是 Array of strings 用于将指定属性映射到身份源的值。 最小长度:0 最大长度:255 数组长度:1-1
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 permission_sets Array of strings 满足查询条件的权限集ID列表。 page_info Object 包含分页信息的对象。 表5 page_info 参数 参数类型 描述 next_marker String 如果存在,则表示可用的输出比当前响应中包含的输出多。在对操作的后续调用中,在标签请求参数中使用此值,以获取输出的下一部分。您应该重复此操作,直到next_marker响应元素返回为null。 current_count Integer 本页返回条目数量。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 request_id String 请求唯一标识。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 request_id String 请求唯一标识。
  • URI GET /v1/instances/{instance_id}/permission-sets/provisioned-to-accounts 表1 路径参数 参数 是否必选 参数类型 描述 instance_id 是 String IAM身份中心实例的全局唯一标识符(ID)。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 每个请求返回的最大结果数。 最小值:1 最大值:100 缺省值:100 marker 否 String 分页标记。 最小长度:24 最大长度:24 account_id 是 String 账号的唯一身份标识。 provisioning_status 否 String 权限集授权状态。 枚举值: LATEST_PERMISSION_SET_PROVISIONED LATEST_PERMISSION_SET_NOT_PROVISIONED
  • 请求示例 根据显示名或外部身份源ID,以精确匹配的方式查询用户组ID。 POST https://{hostname}/v1/identity-stores/{identity_store_id}/groups/retrieve-group-id { "alternate_identifier" : { "external_id" : null, "unique_attribute" : { "attribute_path" : "display_name", "attribute_value" : "用户组名g1" } } }
  • 响应参数 状态码: 200 表7 响应Body参数 参数 参数类型 描述 group_id String 身份源中IAM身份中心用户组的全局唯一标识符(ID)。 最小长度:1 最大长度:47 identity_store_id String 身份源的全局唯一标识符(ID)。 最小长度:1 最大长度:36 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 request_id String 请求ID。 encoded_authorization_message String 鉴权信息。 状态码: 403 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 request_id String 请求ID。 encoded_authorization_message String 鉴权信息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Security-Token 否 String 如果正在使用临时安全凭据,则此header是必需的,该值是临时安全凭据的安全令牌(会话令牌)。 最大长度:2048 表3 请求Body参数 参数 是否必选 参数类型 描述 alternate_identifier 是 Object 备用标识符。 表4 alternate_identifier 参数 是否必选 参数类型 描述 external_id 否 Object 外部身份提供商颁发给此资源的标识符。 unique_attribute 否 Object 特定实体唯一的实体属性。 表5 alternate_identifier.external_id 参数 是否必选 参数类型 描述 id 是 String 外部身份提供商颁发给此资源的标识符。 最小长度:1 最大长度:256 issuer 是 String 外部标识符的颁发者。 最小长度:1 最大长度:100 表6 alternate_identifier.unique_attribute 参数 是否必选 参数类型 描述 attribute_path 是 String 属性路径。 最小长度:1 最大长度:255 attribute_value 是 String 属性的值。 最小长度:1 最大长度:255
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 identity_store_id String 身份源的全局唯一标识符(ID)。 membership_id String 身份源中用户和组关联关系的全局唯一标识符(ID)。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 request_id String 请求ID。 encoded_authorization_message String 鉴权信息。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 request_id String 请求ID。 encoded_authorization_message String 鉴权信息。
  • 请求示例 根据用户ID和用户组ID,查询对应的关联关系ID。 POST https://{hostname}/v1/identity-stores/{identity_store_id}/group-memberships/retrieve-group-membership-id { "group_id" : "0efaa0db-6aa4-7aaa-6aa5-c222aaaaf31a", "member_id" : { "user_id" : "ac6aa714-daa7-1aaa-aaa2-6715aaaa4dd9" } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Security-Token 否 String 如果正在使用临时安全凭据,则此header是必需的,该值是临时安全凭据的安全令牌(会话令牌)。 最大长度:2048 表3 请求Body参数 参数 是否必选 参数类型 描述 group_id 是 String 身份源中IAM身份中心用户组的全局唯一标识符(ID)。 最小长度:1 最大长度:47 member_id 是 Object 包含组成员标识符的对象 表4 member_id 参数 是否必选 参数类型 描述 user_id 是 String 身份源中IAM身份中心用户的全局唯一标识符(ID)。 最小长度:1 最大长度:47
  • 变更内容 分布式数据库中间件DDM实例集群资源(即主资源)以及子资源的产品类型、产品以及资源ID信息在账单中均以主资源的产品类型、产品以及资源ID信息进行显示,已出的历史账单信息不变。 下面以一个单节点DDM按需资源的流水账单和使用量明细账单为例进行优化说明,包年/包月资源可参考按需资源。 流水账单优化前: 表1 优化前流水账单 产品类型 产品 计费模式 消费时间 订单号/交易号 交易时间 账单类型 区域 分布式数据库中间件 分布式数据库中间件集群 按需 2023-05-11 13:00:00 GMT+08:00 1945dd86-5007-4475-b4e8-cde1976a9194 2023-05-11 14:00:00 GMT+08:00 消费-使用 华北-乌兰察布二零一 分布式数据库中间件 分布式数据库中间件 按需 2023-05-11 13:00:00 GMT+08:00 4dfcea0a-da57-4146-bc8e-71a387767f11 2023-05-11 14:00:00 GMT+08:00 消费-使用 华北-乌兰察布二零一 流水账单优化后,一个结算周期,一个主资源及其子资源合并为一条流水账单,产品类型和产品均用主资源进行展示。 表2 优化后流水账单 产品类型 产品 计费模式 消费时间 订单号/交易号 交易时间 账单类型 区域 分布式数据库中间件 分布式数据库中间件集群 按需 2023-05-11 13:00:00 GMT+08:00 4dfcea0a-da57-4146-bc8e-71a387767f11 2023-05-11 14:00:00 GMT+08:00 消费-使用 华北-乌兰察布二零一 使用量明细账单优化前: 表3 优化前使用量明细账单 产品类型 产品 计费模式 消费时间 订单号/交易号 交易时间 账单类型 资源id 资源名称 规格 使用量类型 区域 分布式数据库中间件 分布式数据库中间件集群 按需 2023-05-11 13:00:00 GMT+08:00 d5f5b7a8-da6c-4596-8bce-0e96e8861384 2023-05-11 14:00:00 GMT+08:00 消费-使用 ce7bdcae1ce746c98327318039f4d411in09 ddm-b908 分布式数据库中间件|集群 架构 华北-乌兰察布二零一 分布式数据库中间件 分布式数据库中间件 按需 2023-05-11 13:00:00 GMT+08:00 c322aa35-8040-4579-9ce4-14a15850e682 2023-05-11 14:00:00 GMT+08:00 消费-使用 2de9553e48db4ab989179a5336162a7ano09.vm ddm-b908 DDM分布式数据库中间件_c6_8核16G 时长 华北-乌兰察布二零一 使用量明细账单优化后,产品类型、产品、资源ID和资源名称基于主资源进行展示。 表4 优化后使用量明细账单 产品类型 产品 计费模式 消费时间 订单号/交易号 交易时间 账单类型 资源ID 资源名称 规格 使用量类型 区域 子资源ID 子资源名称 子资源产品类型 子资源产品 分布式数据库中间件 分布式数据库中间件集群 按需 2023-05-11 13:00:00 GMT+08:00 150d0ed8-7369-4c97-a7a8-5ed69626e885 2023-05-11 14:00:00 GMT+08:00 消费-使用 ce7bdcae1ce746c98327318039f4d411in09 ddm-b908 DDM分布式数据库中间件_c6_8核16G 时长 华北-乌兰察布二零一 2de9553e48db4ab989179a5336162a7ano09.vm ddm-b908 分布式数据库中间件 分布式数据库中间件 分布式数据库中间件 分布式数据库中间件集群 按需 2023-05-11 13:00:00 GMT+08:00 87318741-4554-428a-8deb-c9900512b890 2023-05-11 14:00:00 GMT+08:00 消费-使用 ce7bdcae1ce746c98327318039f4d411in09 ddm-b908 分布式数据库中间件|集群 架构 华北-乌兰察布二零一 ce7bdcae1ce746c98327318039f4d411in09 ddm-b908 分布式数据库中间件 分布式数据库中间件集群 其他维度账单数据内容变化不再赘述,详细请见费用账单。
  • 常见问题 DDM实例为什么要下线部分规格? DDM已经提供了性能更好、稳定性更佳的规格,并且下线的规格已经极少人使用。为了使得DDM团队能够更好地聚焦新规格,提供更优质的服务,因此对老的一些规格进行下线处理。 DDM实例部分规格下线对其他服务有影响吗? DDM实例部分规格下线对其他服务没有影响。 下线后,继续使用这些规格的DDM实例会有什么影响? 规格停止服务后,华为云将无法对新发现的安全风险提供补丁更新修复和技术支持,这会导致用户的业务出现安全风险。 当前使用下线规格的DDM实例要怎么办? 请将下线规格变更为替代规格。 如何将DDM实例的规格由下线规格变更为替代规格? 请参考规格变更将下线规格变更为替代规格。 DDM实例的规格由下线规格变更为替代规格对业务有什么影响? 变更时,可能会导致业务有短暂的中断,建议在业务低峰期进行变更。 变更后,仅仅是底层资源发生了变化,对业务没有影响。 DDM实例变更规格前后费用一致吗? 变更规格会引起费用的变化,具体费用请参考DDM价格详情。 变更规格过程中,如果您遇到需要补齐差价等费用问题,可提交工单或咨询服务热线(4000-955-988或950808)。
  • 下线影响 停止服务后,表1中规格会停止技术服务支持,包括支持新功能、社区bugfix回合、漏洞修复、升级等。但同时分布式数据库中间件也提供了与停止服务规格相似特性和能力,性能更佳的规格,详见表2。建议您进行规格变更,从而我们能够继续为您提供高水平的服务,价格可参考DDM价格详情。 如您有任何问题,可随时通过工单或者服务热线(4000-955-988或950808)与我们联系。 表1 即将停止服务的规格 实例规格名称 CPU(核) 内存(GB) ddm.s2.xlarge.2 4 8 ddm.s2.2xlarge.2 8 16 ddm.s2.4xlarge.2 16 32 ddm.s2.8xlarge.2 32 64 ddm.s2.12xlarge.2 48 96 ddm.s2.16xlarge.2 64 128 ddm.c3.20xlarge.2 80 160 ddm.c3.24xlarge.2 96 192 ddm.c3.28xlarge.2 112 224 ddm.c3.32xlarge.2 128 256 ddm.c3.36xlarge.2 144 288 ddm.c3.40xlarge.2 160 320 ddm.c3.44xlarge.2 176 352 ddm.c3.48xlarge.2 192 384 ddm.c3.56xlarge.2 224 448 ddm.c3.64xlarge.2 256 512 表2 替代规格 实例规格名称 CPU(核) 内存(GB) 通用增强型 8 16 16 32 32 64 鲲鹏通用计算增强型 8 16 16 32 32 64
  • DDM各版本的生命周期规划 在正式EOM/EOS前会发布公告,在此期间客户可以通过版本升级将版本在EOS之前切换到高版本。 EOM:End of Marketing,停止该版本的销售。 EOS:End of Service & support,停止该版本的服务,建议您在执行作业时选择最新版本的引擎。在该日期之后,不再提供该软件版本的任何技术服务支持。 表1 DDM各版本生命周期规划表 版本 华为云发布时间 华为云计划EOM时间 华为云计划EOS时间 3.1.2系列 2023年12月 2026年12月 2027年6月 3.1.1系列 2023年8月 2026年8月 2027年2月 3.1.0系列 2023年1月 2026年1月 2026年7月 3.0.9系列 2022年8月 2025年8月 2026年2月 3.0.8系列 2022年2月 2025年2月 2025年8月 3.0.6系列 2021年12月 2024年12月 2025年6月 3.0.4系列 2021年9月 2024年9月 2025年3月
  • 内核版本说明 本章节介绍内核版本更新说明。 表1 内核版本更新说明 版本 说明 3.1.2.0 新功能 连接池增强异常处理,增加DN节点的fail-fast特性(默认关闭)。 强化分片变更数据校验性能。 优化内存设置。 支持ANALYZE TABLE语句。 全局二级索引重建(白名单特性)。 3.1.1 新功能 支持全局二级索引(白名单特性)。 支持SSL加密连接。 3.1.0 新功能 新增Show Processlist和Kill Sessionid支持增加过滤条件。 新增支持MySQL 8.0 Online DDL相关关键字。 修复问题 修复执行使用DATE_SUB函数进行update语句后出现毫秒值丢失。 优化部分复杂查询下的字段别名显示。 修复Rename操作混在其他ddl语句后面操作成功后,新表无法使用。 修复Sequence并发插入报错问题。 3.0.9 新功能 支持对Sequence自增进度查询能力。 支持单条大小超过16M的记录查询。 支持MariaDB Connector/J驱动。 优化读写分离中的事务拆分功能,事务中连接未发生事务更新时可根据读写分离权重决定路由到主实例或只读实例。 3.0.8 新增功能 新增支持ROW表达式的路由计算。 新增支持表级回收站能力。 新增支持METADATA备份恢复能力。 修复问题 优化DDM MetaDb链接池。 优化DDM进程监控机制。 优化Show Processlist显示。 优化Reload获取元数据的流程。 优化增量回放如果遇到XA ROLLBACK时报错流程。 3.0.6 新增功能 支持分片变更内核讲METADATA链接统一使用链接池。 修复问题 修复对执行中的DDL命令做Ctrl+C操作, 无法记录结束状态问题。 优化客户端大数据查询下,进程Kill场景下CPU使用率高。 3.0.4 修复问题 修复部分异常场景下的读写分离报错问题。 优化group_concat函数在数据量下的执行。 父主题: 产品发布说明
  • 修订记录 发布日期 修订记录 2024-04-28 第十二次正式发布: 新增章节: 并行文件系统相关接口(Go SDK)。 2023-10-16 第十一次正式发布: 优化Go SDK接口参数描述。 2023-09-21 第十次正式发布: 新增章节: 设置桶的自定义域名(Go SDK)。 获取桶的自定义域名(Go SDK)。 删除桶的自定义域名(Go SDK)。 2023-08-26 第九次正式发布: 新增章节: 如何指定Content-SHA256?。 为什么SDK源码中包含acs.amazonaws.com关键字?。 2023-07-13 第八次正式发布。 新增章节: 设置对象元数据(Go SDK)。 2023-07-11 第七次正式发布。 优化SDK文档和示例代码。 2022-01-04 第六次正式发布。 新增章节: 单链接限速 SDK接口扩展配置 2020-06-30 第五次正式发布。 调整文档结构。 2019-12-18 第四次正式发布。 修改章节: ObsClient初始化 。 2019-02-18 第三次正式发布。 修复一些问题。 2018-11-30 第二次正式发布。 新增章节: 生成带授权信息的URL 删除章节: 简介 2018-3-31 第一次正式发布。
  • 上传对象简介(Go SDK) 在OBS中,用户操作的基本数据单元是对象。OBS Go SDK提供了丰富的对象上传接口,可以通过以下方式上传对象: 流式上传 文件上传 分段上传 断点续传上传 SDK支持上传0KB~5GB的对象。流式上传和文件上传的内容大小不能超过5GB;当上传较大文件时,请使用分段上传,分段上传每段内容大小不能超过5GB。 如果上传的对象权限设置为匿名用户读取权限,对象上传成功后,匿名用户可通过链接地址访问该对象数据。对象链接地址格式为:https://桶名.域名/文件夹目录层级/对象名。如果该对象存在于桶的根目录下,则链接地址将不需要有文件夹目录层级。 上传对象-流式上传(Go SDK) 上传对象-文件上传(Go SDK) 上传对象-追加上传(Go SDK) 上传对象-断点续传上传(Go SDK) 父主题: 对象相关接口(Go SDK)
  • 接口约束 建议使用IAM或策略进行授权,如果使用IAM则需授予obs:object:getAccessLabel权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。 目前接口仅在并行文件系统支持,普通对象桶不支持,如何创建并行文件系统请参考创建并行文件系统(Go SDK)。 仅支持并行文件系统的目录级别的设置,并行文件系统级和文件级均不支持。
  • 返回结果说明 表3 返回结果列表 参数名称 参数类型 描述 output *GetDirAccesslabelOutput 参数解释: 接口返回信息,详见GetDirAccesslabelOutput。 err error 参数解释: 接口返回错误信息。 表4 GetDirAccesslabelOutput 参数名称 参数类型 描述 StatusCode int 参数解释: HTTP状态码。 取值范围: 状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。完整的状态码列表请参见状态码。 默认取值: 无 RequestId string 参数解释: OBS服务端返回的请求ID。 默认取值: 无 ResponseHeaders map[string][]string 参数解释: HTTP响应头信息。 默认取值: 无 AccessLabel []string 必选 参数解释: 目录的accesslabel内容。 约束限制: 仅包含0-9、a-z、 A-Z、下划线的字符串,最大长度为52个字符。 目录级别AccessLabel最大设置支持256条。 默认取值: 无
  • 代码示例 本示例用于获取examplebucket并行文件系统中的目录Dirname的accesslabel。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 package main import ( "fmt" "os" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint, obs.WithSecurityToken(securityToken)) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.GetDirAccesslabelInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定对象名,此处以 Dirname 为例。 input.Key = "Dirname" // 获取对象的AccessLabel output, err := obsClient.GetDirAccesslabel(input) if err == nil { fmt.Printf("Get dir(%s) accesslabel successful with bucket(%s)!\n", input.Key, input.Bucket) fmt.Printf("RequestId:%s\n", output.RequestId) return } fmt.Printf("Get dir(%s) accesslabel fail with bucket(%s)!\n", input.Key, input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } }
  • 请求参数说明 表1 请求参数列表 参数名称 参数类型 是否必选 描述 input *GetDirAccesslabelInput 必选 参数解释: 设置并行文件系统ACL请求参数,详见GetDirAccesslabelInput。 extensions extensionOptions 可选 参数解释: 并行文件系统相关扩展信息。通过调用拓展配置项为对应请求配置额外的拓展请求头,详情参考extensionOptions。
  • 代码示例 本示例用于删除examplebucket并行文件系统中的目录Dirname的accesslabel。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 package main import ( "fmt" "os" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint, obs.WithSecurityToken(securityToken)) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.DeleteDirAccesslabelInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定对象名,此处以 Dirname 为例。 input.Key = "Dirname" // 对象的AccessLabel output, err := obsClient.DeleteDirAccesslabel(input) if err == nil { fmt.Printf("Delete dir(%s) accesslabel successful with bucket(%s)!\n", input.Key, input.Bucket) fmt.Printf("RequestId:%s\n", output.RequestId) return } fmt.Printf("Delete dir(%s) accesslabel fail with bucket(%s)!\n", input.Key, input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } }
  • 接口约束 建议使用IAM或策略进行授权,如果使用IAM则需授予obs:object:deleteAccessLabel权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。 目前接口仅在并行文件系统支持,普通对象桶不支持,如何创建并行文件系统请参考创建并行文件系统(Go SDK)。 仅支持并行文件系统的目录级别的设置,并行文件系统级和文件级均不支持。
  • 返回结果说明 表3 返回结果列表 参数名称 参数类型 描述 output *BaseModel 参数解释: 接口返回信息,详见BaseModel。 err error 参数解释: 接口返回错误信息。 表4 BaseModel 参数名称 参数类型 描述 StatusCode int 参数解释: HTTP状态码。 取值范围: 状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。完整的状态码列表请参见状态码。 默认取值: 无 RequestId string 参数解释: OBS服务端返回的请求ID。 默认取值: 无 ResponseHeaders map[string][]string 参数解释: HTTP响应头信息。 默认取值: 无
  • 请求参数说明 表1 请求参数列表 参数名称 参数类型 是否必选 描述 input *DeleteDirAccesslabelInput 必选 参数解释: 设置并行文件系统ACL请求参数,详见DeleteDirAccesslabelInput。 extensions extensionOptions 可选 参数解释: 并行文件系统相关扩展信息。通过调用拓展配置项为对应请求配置额外的拓展请求头,详情参考extensionOptions。
  • 代码示例 本示例用于设置并行文件系统examplebucket中目录名为Dirname的accesslabel。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 package main import ( "fmt" "os" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint, obs.WithSecurityToken(securityToken)) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.SetDirAccesslabelInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定对象名,此处以 Dirname 为例。 input.Key = "Dirname" // 指定目录的accesslabel,这次以role_label_01和role_label_02为例 input.Accesslabel = []string{"role_label_01", "role_label_02"} // 设置对象的AccessLabel output, err := obsClient.SetDirAccesslabel(input) if err == nil { fmt.Printf("Set dir(%s) accesslabel successful with bucket(%s)!\n", input.Key, input.Bucket) fmt.Printf("RequestId:%s\n", output.RequestId) return } fmt.Printf("Set dir(%s) accesslabel fail with bucket(%s)!\n", input.Key, input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } }
共100000条