华为云用户手册

  • 响应消息示例 HTTP/1.1 200 Date: Wed, 18 Dec 2019 06:20:40 GMT Content-Type: application/json;charset=UTF-8 Content-Length: 745 Connection: keep-alive Pragma: No-cache Cache-Control: no-cache Expires: Thu, 01 Jan 1970 00:00:00 GMT X-XSS-Protection: 1; mode=block X-Download-Options: noopen X-Content-Type-Options: nosniff strict-transport-security: max-age=16070400; includeSubDomains X-Frame-Options: SAMEORIGIN Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' blob: data: http: https: ; child-src * ; connect-src * x-request-id: 5162fa32dc7e47afafeee39a72a2eec3 Server: CloudPortal { "accessToken": "stbNxmD2UXEDkHQD73sqMhXB6eXw6ngvSbo9", "clientType": 0, "createTime": 1599102826754, "daysPwdAvailable": -18172, "delayDelete": false, "expireTime": 1577979513, "firstLogin": true, "forceLoginInd": null, "proxyToken": null, "pwdExpired": false, "refreshCreateTime": 1599102826754, "refreshExpireTime": 1601694826, "refreshToken": "stbYaza5VVRr3IGuLSs6ZvF0lMHHvGO0tQ0f", "refreshValidPeriod": 2592000, "tokenIp": "10.8.0.90", "tokenType": 0, "user": { "adminType": 2, "alias1": null, "appId": null, "cloudUserId": "76aaaba8a12f4c0a8a43192...", "companyDomain": null, "companyId": "f5968fc4f9c14d50905e8e66672dabc6", "corpType": 0, "freeUser": false, "grayUser": false, "headPictureUrl": null, "isBindPhone": null, "name": "xxxx_name", "nameEn": null, "numberHA1": "1ead5e5ce44849bc2718d5c....", "paidAccount": null, "paidPassword": null, "password": null, "realm": "huaweicloud.com", "serviceAccount": "sip:xxxx@huaweicloud.com", "spId": "666bd8558e4646e1a7e1a0c99cf898e8", "status": 0, "thirdAccount": "62fe180o133fd...", "tr069Account": "X3M537A6IX4SC...", "ucloginAccount": "z8b2vo875ioh54r29ad5e3552vb3gm8np2j167...", "userId": "0d5202707123429d876....", "userType": 2, "visionAccount": null, "weLinkUser": false }, "validPeriod": 84616 }
  • 请求参数 表2 参数说明 参数 是否必须 类型 位置 描述 Content-Type 是 String Header Body的媒体格式(样例:application/json; charset=UTF-8)。 X-Request-ID 否 String Header 请求requestId,用来标识一路请求,用于问题跟踪定位,建议使用UUID,若不携带,则后台自动生成。 Accept-Language 否 String Header 语言参数,默认为中文zh-CN,英文为en-US。 account 否 String Body 认证账号。 maxLength: 255 minLength: 0 authServerType 是 String Body 鉴权服务类型。 workplace: WeLink 代理鉴权 oauth2:OAuth2.0鉴权 authType 是 String Body 鉴权类型。 AccountAndPwd:Welink代理鉴权 AuthCode:OAuth2.0鉴权 clientType 是 Integer Body 登录账号类型。 72:API调用类型。 createTokenType 否 Integer Body 是否生成Token。默认0。 0:生成,用于登录鉴权; 1:不生成。 credential 否 String Body OAuth2.0时填从鉴权中心获取的临时Code。 domain 否 String Body 企业 域名 。OAuth2.0鉴权时需要填写。 pwd 否 String Body 认证密码。Welink代理鉴权时需要填写。 maxLength: 255 minLength: 0 remark 否 String Body 备注信息。
  • 响应参数 表4 响应参数 参数 类型 描述 accessToken String 接入Token字符串。 clientType Integer 登录账号类型。 72:API调用类型; createTime Long 业务token的创建时间戳,单位:毫秒。 daysPwdAvailable Integer 密码有效天数。 delayDelete Boolean 是否延时删除状态。 expireTime Long Token的失效时间戳,单位:秒。 firstLogin Boolean 是否首次登录。 说明: 首次登录表示尚未修改过密码。首次登录时,系统会提醒用户需要修改密码。 默认值:false。 forceLoginInd Integer 抢占登录标识。 0:非抢占 1:抢占(未启用) proxyToken ProxyTokenDTO object 代理鉴权信息。 pwdExpired Boolean 密码是否过期。 默认值:false。 refreshCreateTime Long 刷新token的创建时间戳,单位:毫秒。 refreshExpireTime Long 刷新token的失效时间戳,单位:秒。 refreshToken String 刷新token字符串。 refreshValidPeriod Long 刷新token有效时长,单位:秒。 tokenIp String 用户IP。 tokenType Integer token类型。 0:用户AC CES S TOKEN 1:会控TOKEN 2:一次性TOKEN user UserInfo object 用户鉴权信息。 validPeriod Long Token的有效时长,单位:秒。
  • 请求消息示例 POST /v1/usg/acs/auth/proxy Connection: keep-alive Content-Type: application/json X-Request-ID: 5162fa32dc7e47afafeee39a72a2eec3 Accept-Language: zh-CN Host: api.meeting.huaweicloud.com User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_191) { "clientType": "72", "authServerType": "workplace", "authType": "AccountAndPwd", "pwd": "******", "createTokenType": 0, "account": "******" }
  • 描述 该接口使用第三方的账号进行代理鉴权,鉴权通过后生成一个Access Token。当前支持的第三方代理账号包括: Welink的账号和密码 支持OAuth2.0标准的第三方账号 当clientType取值为72时,同一个account,同时最多能创建64个Token。比如已经创建了64个Token,并且Token都在有效期内,再用同一个account创建一个Token,前64个Token中最早创建的Token将失效。 当clientType取值为非72时,同一个account,同时最多能创建1个Token。 Token有效期是12~24小时。
  • CURL命令示例 curl -k -i -H 'content-type: application/json' -X PUT -H 'X-Access-Token: stb7PzruAmA6d3JJD578jlAHczGfN4SIaup9' -d '["test010"]' https://api.meeting.huaweicloud.com/v1/usg/dcs/corp/member/status/0?accountType=0
  • 请求参数 表2 参数说明 参数 是否必须 类型 位置 描述 value 是 Integer Path 用户的新状态。 0:正常 1:停用 accountType 否 Integer Query 账号类型。默认0。 0:华为云会议账号。用于账号/密码鉴权方式 1:第三方User ID,用于App ID鉴权方式 X-Access-Token 是 String Header 授权令牌。获取“执行App ID鉴权”响应的accessToken。 X-Request-Id 否 String Header 请求requestId,用来标识一路请求,用于问题跟踪定位,建议使用UUID,若不携带,则后台自动生成。 Accept-Language 否 String Header 语言参数,默认为中文zh-CN,英文为en-US。 [数组元素] 是 Array of strings Body 企业用户账号列表。
  • 请求消息示例 PUT /v1/usg/dcs/corp/member/status/0?accountType=0 Connection: keep-alive X-Access-Token: stb7PzruAmA6d3JJD578jlAHczGfN4SIaup9 Content-Type: application/json Content-Length: 11 Host: api.meeting.huaweicloud.com User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_191) ["test010"]
  • 响应消息示例 HTTP/1.1 200 Date: Wed, 18 Dec 2019 06:20:40 GMT Content-Type: application/json;charset=UTF-8 Content-Length: 143 Connection: keep-alive Pragma: No-cache Cache-Control: no-cache Server: api-gateway X-Request-Id: 0ecdde61a9c0aedc6c17ed7add46033c
  • 监控指标 表1 支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) flux 流量 该指标用于统计域名在单位时间内的总流量。 单位:比特/秒 ≥ 0 bit/s 域名 5分钟 req_num 访问量 该指标用于统计域名在单位时间内的总访问量。 单位:个 ≥ 0 counts 域名 5分钟 http_code_2xx 状态码汇总2xx 该指标用于统计服务端响应状态码为2xx的请求数。 单位:次 ≥ 0 counts 域名 5分钟 http_code_3xx 状态码汇总3xx 该指标用于统计服务端响应状态码为3xx的请求数。 单位:次 ≥ 0 counts 域名 5分钟 http_code_4xx 状态码汇总4xx 该指标用于统计服务端响应状态码为4xx的请求数。 单位:次 ≥ 0 counts 域名 5分钟 http_code_5xx 状态码汇总5xx 该指标用于统计服务端响应状态码为5xx的请求数。 单位:次 ≥ 0 counts 域名 5分钟
  • 基于 视频直播 服务的责任共担 视频直播服务使用场景中,如下角色需要共同参与和责任共担。各个角色的安全责任边界说明,如下所示: 华为云租户 负责直播管理,包括如下安全责任: 直播平台与直播APP的应用和数据安全。 直播活动安全运营。 最终用户(主播或观众)安全管理,包括:直播视频内容的安全监管等。 监管机构响应能力。 视频直播服务 Live的安全责任,如下所示: 传输网络的基础设施安全,完成视频内容的安全传输和处理。 租户数据安全配置。 提供相应技术,如:截图、录制等,支撑租户监管视频内容。 监管机构响应能力。 最终用户 主播和观众负责视频生产和消费视频内容的安全。
  • 云堡垒机 支持哪些区域和可用分区? 目前云 堡垒机 支持“华北-北京一”、“华北-北京四”、“华东-上海一”、 “华东-上海二”、 “西南-贵阳一”、“华南-广州”和“华南-深圳”等区域。 云堡垒机支持的区域和可用区参见表1。 表1 云堡垒机支持区域和可用分区 区域名称 区域 可用分区 可用分区名称 华北-北京一 cn-north-1 cn-north-1a 可用区1 cn-north-1b 可用区2 华北-北京四 cn-north-4 cn-north-4a 可用区1 cn-north-4c 可用区3 华东-上海一 cn-east-3 cn-east-3a 可用区1 cn-east-3b 可用区2 cn-east-3c 可用区3 华东-上海二 cn-east-2 cn-east-2a 可用区1 cn-east-2b 可用区2 cn-east-2c 可用区3 cn-east-2d 可用区4 华南-广州 cn-south-1 cn-south-1a 可用区1 cn-south-1b 可用区2 cn-south-1c 可用区3 cn-south-1e 可用区5 华南-深圳 cn-south-2 cn-south-2a 可用区1 西南-贵阳一 cn-southwest-2 cn-southwest-2a 可用区1 cn-southwest-2d 可用区4 西北-克拉玛依 cn-northwest-1 cn-northwest-1a 可用区1 华东-青岛 cn-east-5 cn-east-5a 可用区1 华北-乌兰察布一 cn-north-9 cn-north-9a 可用区1 cn-north-9b 可用区2 cn-north-9c 可用区3 拉美-墨西哥城二 la-north-2 la-north-2a la-north-2a la-north-2b la-north-2b 亚太-新加坡 ap-southeast-3 ap-southeast-3a 可用区1 ap-southeast-3b 可用区2 ap-southeast-3c 可用区3 ap-southeast-3e 可用区5 亚太-曼谷 ap-southeast-2 ap-southeast-2a 可用区1 ap-southeast-2b 可用区2 ap-southeast-2c 可用区3 中国-香港 ap-southeast-1 ap-southeast-1a 可用区1 ap-southeast-1b 可用区2 ap-southeast-1c 可用区3 亚太-雅加达 ap-southeast-4 ap-southeast-4a 可用区1 ap-southeast-4c 可用区3 中东-利雅得 me-east-1 me-east-1a 可用区1 me-east-1b 可用区2 me-east-1c 可用区3 华为云政务平台-乌兰察布 cn-north-10 cn-north-10a 可用区1 cn-north-10b 可用区2 cn-north-10c 可用区3 土耳其-伊斯坦布尔 tr-west-1 tr-west-1b tr-west-1b 父主题: 区域和可用区
  • 前提条件 已注册华为官方账号。未注册可参考注册华为账户注册华为账户完成注册。 已完成实名制认证。未完成可在华为云上单击实名认证完成认证,否则会影响后续云服务的开通。 已开通 设备接入服务 。未开通则访问设备接入服务,单击“免费试用”或单击“价格计算器”购买并开通该服务。 已开通 AOM 服务。访问AOM服务,单击“AOM2.0控制台”,单击“免费开通服务并授权”开通该服务。 已开通DMS Kafka服务。未开通则访问DMS Kafka服务,单击“立即购买”后开通该服务。
  • 基于视频直播服务的责任共担 视频直播服务使用场景中,如下角色需要共同参与和责任共担。各个角色的安全责任边界说明,如下所示: 华为云租户 负责直播管理,包括如下安全责任: 直播平台与直播APP的应用和数据安全。 直播活动安全运营。 最终用户(主播或观众)安全管理,包括:直播视频内容的安全监管等。 监管机构响应能力。 视频直播服务 Live的安全责任,如下所示: 传输网络的基础设施安全,完成视频内容的安全传输和处理。 租户数据安全配置。 提供相应技术,如:截图、录制等,支撑租户监管视频内容。 监管机构响应能力。 最终用户 主播和观众负责视频生产和消费视频内容的安全。
  • 基于华为云的责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的IaaS、PaaS和SaaS各类各项云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。 华为云租户的安全责任在于对使用的IaaS、PaaS和SaaS类各项云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型
  • 概述 使用MQTT协议接入的设备,平台和设备之间基于Topic进行通信。Topic分为系统Topic和自定义Topic。系统Topic为平台预置的基本通信Topic,自定义Topic是可以根据实际业务需要用户自行定义的Topic,客户可根据使用场景进行选择使用。值得注意的是,自定义Topic与系统Topic的消息上报一样,在平台都进行透传(平台不主动解析数据具体内容)。 表1 topic分类 Topic类别 描述 使用场景 系统Topic 平台预先定义了各种设备和平台通信的Topic,具体Topic列表和功能说明可参考Topic定义。 消息上报、属性上报、命令下发、事件类主题。 自定义Topic 用户可以自定义Topic,设备和平台间可以基于用户自定义的Topic进行通信。 自定义topic分类: $oc开头的自定义Topic:在产品中定义需要使用的Topic,这类Topic有$oc/devices/{device_id}/user/前缀,消息上报或者消息下发时平台会校验Topic是否在产品中定义,未在产品中定义的Topic会被平台拒绝。 非$oc开头的自定义Topic:如/aircondition/data/up进行消息通信,平台会通过Topic策略校验主题权限,可以用于进行Topic的消息上下行通信。 在业务需要特定Topic的场景。比如说端到端通信、广播通信、设备迁移等。
  • 使用X.509证书的鉴权流程 X.509证书是一种用于通信实体鉴别的数字证书。当前 物联网平台 只支持基于MQTT协议接入的设备使用X.509证书进行设备身份认证,且每个用户最多上传100个设备CA证书。 图3 使用X.509证书的鉴权流程 在控制台上传设备CA证书。 通过调用注册接口向物联网平台发送注册请求或者在控制台上注册设备。 注册时需要填写设备标识码,通常使用MAC地址,Serial No或IMEI作为nodeId。 物联网平台向设备分配全局唯一的设备ID(deviceId)。 用户将设备ID(deviceId)烧录到设备硬件或软固件中。 设备上电后,携带设备侧X.509证书发起接入鉴权请求。 平台验证通过后,返回成功响应,设备连接物联网平台成功。
  • 使用LwM2M/CoAP协议接入的鉴权流程 图1 使用LwM2M/CoAP协议接入的鉴权流程 1. 通过调用注册接口向物联网平台发送注册请求或者在控制台上注册设备。 2~3. 物联网平台向设备分配密钥,并返回timeout。 密钥可以在注册设备时自定义,如果没有定义,平台将自动分配预置密钥。 timeout是指超时时间,若设备在有效时间未接入物联网平台,则平台会删除该设备的注册信息。 4. 用户将密钥烧录到设备硬件或软固件中。 5. 设备上电后,安全设备携带设备唯一标识码nodeId(如IMEI)和密钥发起接入鉴权请求;非安全设备携带设备唯一标识码发起接入鉴权请求。 6~7. 平台验证通过后,返回成功响应,设备连接物联网平台成功。
  • 概述 设备鉴权是指物联网平台对接入平台的设备进行身份认证。对于不同接入方式的设备,鉴权方式不同。 接入类型 鉴权方式 使用LwM2M/CoAP协议接入的设备 在设备接入物联网平台前,用户通过应用服务器调用创建设备接口或通过控制台在物联网平台注册设备。若为非安全设备,在设备接入物联网平台时携带设备唯一标识,完成设备的接入鉴权;当采用DTLS/DTLS+传输层安全协议接入时,即设备为安全设备时,携带密钥和nodeId完成设备的接入鉴权。图1所示。 使用原生MQTT/MQ TTS 协议接入的设备 使用密钥鉴权: 在设备接入物联网平台前,用户通过应用服务调用创建设备接口或通过控制台在物联网平台注册设备,获取设备ID和密钥,并把设备ID和密钥烧录到设备中。针对MQTTS协议的设备,需要在设备侧预置CA证书;MQTT不需要,然后在设备接入物联网平台时携带设备ID和密钥,完成设备的接入鉴权。图2所示。 使用证书鉴权: 在设备接入物联网平台前,用户通过控制台上传设备CA证书,然后应用服务调用创建设备接口或通过控制台在物联网平台注册设备,获取设备ID,并把设备ID烧录到设备中。在设备接入物联网平台时携带设备侧X.509证书,完成设备的接入鉴权。图3所示。
  • 使用原生MQTT/MQTTS协议接入的鉴权流程 图2 使用原生MQTT/MQTTS协议接入的鉴权流程 通过调用注册接口向物联网平台发送注册请求或者在控制台上注册设备。 注册时需要填写设备标识码,通常使用MAC地址,Serial No或IMEI作为nodeId。 物联网平台向设备分配全局唯一的设备ID (deviceId)和密钥(secret)。 密钥可以在注册设备时自定义,如果没有定义,平台将自动分配密钥。 用户将设备ID(deviceId)和密钥(secret)烧录到设备硬件或软固件中。 (仅针对MQTTS协议接入的鉴权流程)设备侧需集成预置CA证书。 设备上电后,携带设备ID(deviceId)和密钥(secret)发起接入鉴权请求。 平台验证通过后,返回成功响应,设备连接物联网平台成功。
  • 概述 当设备和物联网平台完成对接后,设备可通过以下方式发送数据到物联网平台: 表1 数据上报 类型 子类型 描述 适用场景 协议 物模型 大小 消息上报 设备消息上报 是设备直接将数据传到云端的一种方式,实现设备侧到应用侧的数据直接透传,平台对设备上报的消息不进行解析和存储。 常用于高频率数据的传输或需要用户自定义数据格式的场景。例如:短时间发送大量传感器数据到应用侧。 MQTT、HTTP 不依赖 单次请求:上报的消息最大为1MB。 单用户:标准版最大可使用带宽10Mb/s,企业版最大可使用带宽为50Mb/s。 自定义Topic通信 根据客户需求,自定义Topic,平台将上报的数据直接透传。应用侧可以通过订阅自定义Topic区分不同的业务。 一般用于设备上报的业务类型有多样,需要根据实际业务自定义Topic的场景,或在数据转发中需要转发到特定的Topic的场景,比如数据迁移。 MQTT 属性上报 设备属性上报 属性上报的数据,设备侧到应用侧的数据不直接透传。数据在平台中会通过定义的产品模型来校验、进行过滤,若上报的数据不符合产品模型定义,平台会丢弃该数据。 希望建立统一的模型:规定数据的格式与取值范围、设备的数据需要平台解析、存储的场景。或希望平台能够存储最新的镜像数据的场景。例如:发送路灯的开关数据到应用侧。 MQTT、HTTP、LwM2M/CoAP 依赖 单次请求:上报的属性最大为64KB。 单用户:标准版最大可使用带宽10Mb/s,企业版最大可使用带宽为50Mb/s。 网关批量属性上报 一次性上报多个子设备的属性,设备侧到应用侧的数据不直接透传。平台会将网关上报多子设备的数据分发到对应的子设备。 网关下关联多个子设备的场景。并且对于子设备数据上报时间不敏感,可以把多个子设备的数据打包后再一起上报。 MQTT 资源受限或者对网络流量有要求的设备,不适合直接构造JSON数据与物联网平台通信时,可将原始二进制数据透传到物联网平台。通过开发编解码插件实现二进制数据到平台定义JSON格式的转换。 若发送到平台的数据需要发到华为云其他云服务上进行存储和处理,可以通过数据转发规则功能进行转发,然后再通过其他云服务的控制台或者API接口进行进一步的数据处理。 图1 消息上报概念图 图2 属性上报概念图 图3 原始二进制数据上报概念图
  • 业务概览 开通设备接入服务后,使用设备接入服务的完整流程如下图所示,主要分为产品开发、应用侧开发、设备侧开发和日常管理。 产品开发:开发者在进行设备接入前,基于控制台进行相应的开发工作,包括创建产品、创建设备、在线开发产品模型、在线开发插件和在线调试。 应用侧开发:通过API的形式对外开放物联网平台丰富的设备管理能力,应用开发人员基于API接口开发所需的行业应用,如智慧城市、智慧园区、智慧工业、车联网等行业应用,满足不同行业的需求。 设备侧开发:设备侧可以通过集成SDK、模组或者原生协议接入物联网平台。 日常管理:真实设备接入后,基于控制台或者API接口,进行日常的设备管理。 图1 流程图
  • 方案概述 基于IoT平台实现一个物联网解决方案,需要完成以下操作: 开发操作 开发说明 产品开发 主要呈现物联网平台的界面查询与操作,包括产品管理、产品模型开发、插件开发、在线调试等。 应用开发 主要为业务应用与物联网平台的集成对接开发,包括API接口调用、业务数据获取和HTTPS证书管理。 设备开发 主要为设备与物联网平台的集成对接开发,包括设备接入物联网平台、业务数据上报和对平台下发控制命令的处理。
  • 包年/包月资源 对于包年/包月计费模式的资源,例如包年/包月的设备接入实例,用户在购买时会一次性付费,服务将在到期后自动停止使用。 如果在计费周期内不再使用包年/包月资源,您可以执行退订操作,系统将根据资源是否属于五天无理由退订、是否使用代金券和折扣券等条件返还一定金额到您的账户。详细的退订规则请参见云服务退订规则概览。 如果您已开启“自动续费”功能,为避免继续产生费用,请在自动续费扣款日(默认为到期前7日)之前关闭自动续费。
  • 修订记录 发布日期 修订记录 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 第一次正式发布。
  • 代码示例 本示例用于获取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) } }
  • 接口约束 建议使用 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条。 默认取值: 无
  • 请求参数说明 表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) } }
共100000条